This is a 'Feature' of Win XP. It's designed not to boot in a system it was not installed on. This is another form of anti piracy methods and security so someone else can't steal your info as easily as before.
There are 2 solutions I can think of.
1. Boot to the Windows disk and run Fixboot command from the repair console.
Recovery console
(this usually works)
2. If you still have the old system- re install the HDD and boot it and remove all the drivers in the device manager - turn off and move to new machine.
-Also you can try running the sysprep command in the old machine (advanced read the docs)
How to use the Sysprep tool to automate successful deployment of Windows XP