there are some problems to make a dual-boot system with XP and Vista.
vista-linux-dualboot works nicely, i don't see why there should be a problem with xp. i suggest the following partition design, based on a 250GB hdd, [+x GB] refers to bigger disks:
sda0
-sda1 primary vista (system, ~30GB)
--sda5 logical data vista (programs, ~40GB [+x GB])
-sda2 primary xp (system, ~10GB)
--sda6 logical data xp (programs, ~50GB [+x GB])
-sda3 primary linux [root](for recovery and a proper boot manager, ~10GB)
--sda7 logical linux home (~10GB [+x GB])
--sda8 logical linux swap [~1GB)
-sda4 primary data (ntfs, for both vista and xp for your programming things and documents, ~100GB [+x GB])