Welcome to Linux adventures Club!!
My vista experience is only three days old..The usual boot loader entry in the menu.lst wouldn't work here...since you dont want to lose your Linux partition.. for this (I may be correct or not) you have to forget windows XP! just now..
You need Gparted Live cd disk and a software called Easy BCD 1.60
*neosmart.net/dl.php?id=1
first use Gparted cd to resize the partition for vista, than right click on the manage partition entry, to remove the bootable tick mark then commit and close it,, restart with windows vista DVD install it on the partition that you resized now Vista installed but you may lose your GRUB entries so when you reboot only vista will be there ( even XP entry will be vanished) however again boot with your ubuntu cd open terminal type
sudo grub
This will put you in superuser mode and launch the GRUB application.
To find the partition with the GRUB boot files, type in:
find /boot/grub/stage1
then type,
root (hd0,X) X is where Ubuntu partition
then type,
setup (hd0,X)
Now grub installed in it root
then type
quite
Boot back into Vista. Download EasyBCD 1.60 and install it. EasyBCD is third-party GUI front end to the BCEDIT bootloader editor in Vista.
Then launch the EasyBCD program. Go to Add/Remove Entries in the left menu, and then the “Linux/BSD” tab.
n the Linux/BSD tab, under the “Type” dropdown menu, select Grub. The default name is “NeoSmart Linux" but you can change it to “Ubuntu” or whatever. Click the Drive drop-down menu and choose the correct partition -
Select "Add Entry" and then "Save". Exit EasyBCD and restart the machine.
Now you should be presented with a boot menu with two boot options - Vista and Ubuntu. Select the Ubuntu boot option and it will load GRUB and boot from the Ubuntu partition.
I don't know whether using this tool you can add Win XP entry in the EasyBCD.. if so GOOD LUCK!! Please report back your experience..
thanking you,
Vaithy