Windows really doesn't like to be anything but the first partition on the first hard drive in a machine. It can be frustrating, but the grub bootloader can overcome this difficulty.
For a good while I had a Windows installation on a small drive that I used for those infrequent times I needed it. To convince Windows to boot from the slave drive, a few simple changes are needed in the grub configuration.
# Grub configuration # Include standard Linux boots # etc # # Now for Windows. Windows is on the slave (hdb) title Windows XP Professional map (hd0) (hd1) # Tell the first hard drive to pretend to be the second map (hd1) (hd0) # Tell the second hard drive to pretend to be the first root (hd1,0) # Tell GRUB Windows is on /dev/hdb1 (No pretending here) rootnoverify (hd1,0) # GRUB won't attempt to mount the Windows drive makeactive # Sets the partition to active chainloader +1 # Tells GRUB to load the Windows bootloader when done