Not sure if this will be a mini how to or not, but here goes. I will go light on the Why but try and focus on the How. Read first before trying
I had Windows XP installed on a 300 Gb hard drive, with the usual set up, firewalled, serviced packed, virus checker, all the usual stuff to make booting hell and getting anything done a right pain. I started to use Mint 6, great, then 7 came along and it was perfect for me. Over time I wanted to put Mint 7 on the 300 Gb Sata drive with all the current software I had installed over a few months and XP with only SP3, one game and drivers for a scanner, and a package to create videos from Photos (the only reason as to why I'm keeping XP around) onto the 80Gb IDE drive.
Most of my settings in Mint 7 I could of backed up using Mintbackup and save the back up to a USB external drive, but as I do not store everything on the local drive, it was not worth doing, I was only concerned with all the software.
To create a reinstall file of software, run this command in a terminal "dpkg --get-selections > selections_file.txt" this will create a file selections_file.txt, move the txt file somewhere off the IDE and Sata drive, I saved it to a USB external drive.
Powered off the PC, restarted, inserted the XP set up disk, went through the install, at this point I formatted both drives to NTFS format, and placed windows on the 80Gb IDE drive, after the install, I installed SP3, set up all the windows drivers and after a real annoying 6 hours I had a base XP (no other software)
Next I installed Mint 7, when it came to partioning I created a 300 Gb (that is the Sata drive) after the install this is where the fun happens.
When I rebooted Mint 7 came up with no issues but on the boot menu there was no Windows boot option, I kind of figured this may happen.
Edit the Grub menu list, in a Mint 7 terminal type "gksudo gedit /boot/grub/menu.lst" in the bottom of the menu add the following in the menu list
"title Windows XP
This will add Windows to the boot menu, and direct it to the hard drive 1 (the windows drive) if you try and boot now, it will not work, (error 11) you need to flip the Sata and IDE drives around for Windows to work (yes you can do this on the BIOS or in the Box, but lets do it the easy way)
Change the Grub Windows entry to
"title Windows XP
map (hd0) (hd1)
map (hd1) (hd0)
WARNING: There is a space between the brackets (hd0)_(hd1)(hd1)_(hd0) otherwise you will get an error 17
If you boot into Windows now, you will get an "NTLDR" missing error, this is good as it is showing Grub is working and pointing to the correct drive.
Copy the "Boot.ini", "NTLDR" and "NTDECT.COM" from another computer (or do it before you kill your old version of XP) onto a USB, now boot into Mint 7, open the 80GB IDE drive and copy the 3 files to the root of the hard drive. Restart you PC and boot into Windows it should work
Now that XP work, reboot and log into Mint 7, to reinstall all your Mint 7 software copy the selections_file.txt back to your home directory and in a terminal type "dpkg --set-selections < selections_file.txt" nothing much happens, you need to install "dselect" to do so type in a terminal "apt-get dselect -install" when installed, type "dselect" and then select "install" from the menu. Hey presto, well after a few hours all your software will be cleanly installed.
I could at the start backed up my home directory, using Mint Backup, and this would of grabbed all my initial setting and preferences, if I wished, but I did not bother.
I hope this will help others, I may be able to answer questions that are posted here, but do not hold me to it