I'm loving my Vista installation, but there was one piece of custom low level software that wouldn't play nice with Vista. I set forth on a quest to add an XP partition.
My first option was to use Microsoft Virtual PC 2007. It's free and it supports both hosts and clients in Vista. That worked fine but my app wouldn't run in a Virtual PC environment. That meant I was going to have to dual boot.
The first problem is that you're typically supposed to install multiple OS's from oldest to newest, but I didn't want to wipe my Vista install. All the instructions are for installing XP first. Here's the path I took. It may or may not work for you, but hopefully it gives you some things to try.
Setup: Two 250GB drives. Drive 1 is partitioned in half with Vista on the system partition. Drive 2 only has one partition.
cd \bootbootsect /nt60 c: /forcec:cd \windows\system32bcdedit /create {legacy} /d "WinXP"bcdedit /set {legacy} device bootbcdedit /set {legacy} path \ntldrbcdedit /displayorder {legacy} /addlast
Actually when I tried to create the new legacy partition, it said that one already existed from my work with VistaBootPro. I had to run bcdedit /delete {legacy} to remove that and start over.
That worked and I'm now dual booting XP and Vista. It seemed like way too much work and I probably should have just wiped everything and installed XP FIRST.
Sources: VirtualPC2007 Beta, VistaBootPRO, bcdedit commands
[UPDATE 3/8/07] If this doesn't work for you, check out Part 2.