Grub will boot OS's from 2 different hard drives. You didn't really give enough info about what happened. It sounds like either you installed Linux, then installed XP afterward which overwrote the Grub bootloader, or you installed a hard drive in your computer with a preinstalled OS on it.
What you need to do is reinstall grub and resetup grub. To do that, load up your Ubuntu Live CD and in its terminal, type:
It will probably give you a result like (hd0,1) or (hd1,1). Whatever it says is what you will actually use in the following code:
but remember to substitute your find results for (hd0,1). Reinstalling grub like this will force grub to be your bootloader on you primary drive, then it will tell the bootloader that its setup files are on whatever drive your Linux install is on.
If that doesn't work, you could try Super Grub Disk Webpage: Home Page
Just for future reference, grub is a linux thing, and you would probably get better help in the "Linux, BSD, other *nixes & Open Source Software" section of these forums.