I had a similar problem, it's a bug or F-U in XP.
Try this as a last resort before you reload XP on your new drive. It's posted at
http://www.annoyances.org/exec/forum/winxp/r1004676718
BACK UP FIRST! Note your Ghost copy can be restored even if it won't boot.
The idea is to remotely edit the Registry on the backup (new) drive to swap
which drive letters are associated with which physical drive:
Boot XP normally with both drives.
On mine, the boot drive is E: and the Ghosted backup on the 2nd drive is G:.
Run the regular Regedit, not Regedit32.
Hilite the HKLM key.
Use File\Load Hive to load G:\WINNT\System32\Config\SYSTEM, naming it SYS-G
or anything easily recognized.
Go to HKLM\SYS-G\MountedDevices\DosDevices\letter
Swap C D, E G
by temporarily renaming to X: then swap, twice. YOURS WILL BE DIFFERENT!! Probably just C and D.
Hilight the SYS-G hive, do a File\Unload Hive.
I reloaded SYS-G, rechecked by comparing strings at right, then unloaded again.
Now if it will boot you can add your old drive with no problems. He said boldly!