No, best to keep the same issue in one thread if possible...
No sense in having the information relating to one user's problem scattered all over the forums, is there?

Like I said, your boot.ini is the culprit, and if you change the partition( ) value in both the default entry, and the entry beneath [operating systems] in your boot.ini file to the right partition, your problem should be solved. If you did more that, you may need to verify that all three XP boot files (i.e. boot.ini, ntldr, and ntdetect.com) are in the root of the "system" "active" partition, as seen from Disk Management in Win 7.
Addendum:
Addendum:
Sorry, I meant to test this method using my spare HD. I am always mobile and don't want to use an external hard drive. I wanted to move the XP and Win 7 partitions to the back of the drive and put Ubuntu up front. When I tested putting Ubuntu as the fist partition on my spare HD, it worked like a charm. The spare HD is and always was for testing.
BTW, I changed all of my drive letters in the boot.ini, but I still got a "Windows could not start" error.
Ok, thanks for explaining your problem a bit more effectively...
So, since you already have solved your Ubuntu problem, and your only issue is XP is not booting, then it should be solved easily enough...
(EDIT: Nevermind, I mis-read...I see now you said you installed Ubuntu on the first partition of
the spare HDD, which I gather is not what you want to use long-term)
There are no drive letters in your boot.ini file (at least not as part of the actual *code* which makes XP boot or not boot). Though CG designed his auto-configurator boot.ini to create drive letters in the
description (i.e. the names) of the boot entries, that has no bearing at all on whether XP boots or not. It is merely so the user can tell which partition it is that the entry is pointed at (though the drive letter in the boot.ini would be an accurate guide
only if its being viewed from the same OS that it was originally
created in, as the drive letters are specific to the
booted system)
Mind explaining your booting problem a little more in detail?

For instance,
where exactly do you get this "Windows could not start" error? After you select the XP entry in the Win 7 boot menu? Is it a BSOD?