I hit the same problem in my house. I had installed Win XP pro in my old hdd. Later on bought a new hdd, added it as a slave, then assigned the letters.
Used the disk imaging software which copied the boot partition to the new hdd.
I unplugged the old hdd and tried to start, windows seem to boot, but the logon screen does not appear.
After going thru all the posts and some microsoft support contents, i realised that is because of the drive letter assignments. The volume guid of the new hdd was already in the existing installation. So when i started xp in the new hdd, it must have assumed it to be the D drive instead of C because of the presence of the volume guid.
The solution is given here.
http://support.microsoft.com/kb/249321/I havent tried it yet, but will try it out today evening. I will boot using win98, use fdisk/mbr. Hope it works.