Before Windows Vista installation, my pc boot loader showed Linux Grub boot manager at startup; I had 2 operating systems installed: Windows XP and Ubuntu Linux.

To make free space on my hard drive for Windows Vista I used a Linux tool: GParted. Simple and powerful! ;)

Then I installed Windows Vista on free partition: Vista’s boot manager overwrited Grub and let me chose my operating systems: unfortunately only XP and Vista worked (cause of overwriting), so I had to reinstall Grub not on MBR but on Linux partition (my target was to use Vista boot manager and not to use Linux Grub).
So I booted with Ubuntu Linux Live CD, I opened a terminal and I wrote:

$ sudo grub
grub> find /boot/grub/stage1

and result was (you can have other values):

(hd1,1)

Then I wrote:

grub> root (hd1,1)
grub> setup (hd1,1)

(notice that if you write “setup (hd1)”, Grub will be installed at beginning of that disk and overwrite Vista bootloader!).
Last command was:

grub> quit

Then I rebooted pc chosing Windows Vista at startup (Ubuntu option will not appear yet).

Notice that on Windows XP you can setup easily your boot manager from boot.ini file. On Windows Vista there is a not-too-frienly utility called BCDEDIT. Fortunately there is another useful utility: EasyBCD, that offer you a simple graphic interface.
So I launched EasyBCD program -> Add/remove Entries -> Linux/BSD.
On Type field I wrote “Grub” (without “”), Name “Ubuntu Linux”
Then Hard Drive “1” and Partition “2”.
Pay attention because if you installed grub on hd0,0, you have to write: Hard Drive “0” and Partition “1” instead of my values.
Then click on “Add Entry” and “save”.

Well done! I rebooted pc and I could see my triple working boot ;)

You can find some useful guides about dual boot at:
http://www.p2pforum.it/forum/forumdisplay.php?f=173
(link no more available)