You may end up with problems because when resuming from hibernate because the disks that the resuming version of Windows sees are going to have have "magically" changed. How confused would you be if, when you woke up, someone rearranged all the stuff in your bedroom overnight while you were asleep?
If you want to do it anyway you are going to need each version of Windows to be able to boot itself, as well as another way of choosing which one to boot.
So you get three partitions (all need to be primary), say:
partition1: Vista
partition2: WinXP
Partition3: Linux
The Vista partition needs to have the "bootmgr" program in its root, and the XP partition needs "ntldr". For each of the Windows partitions in turn, mark that partition as "active" and do the "fixboot" thing so that each Windows can boot itself.
Install your favourite Linux distribution on partition 3, installing Grub on partition3, not in the mbr.
Make partition3 "active" and you are done.
Note 1:
You do not actually need to install a Linux distribution, just Grub, but as you are going to be playing around anyway, having Linux installed will make playing around easier. I have an opensuse 11.3 virtual machine with the LXDE window manager using about 3GB of space. If just installing Grub, the partition can be tiny.
Note 2:
There is a bug in Windows' GUI partition manager which means that it will not set a non-Windows partition as active. Use the command line "diskpart" program in Windows if necessary.
Note 3:
You could install Grub in the mbr, but I think that is a bad idea.