What drive letters Windows assigns to partitions is irrelevant to GRUB.
The advice LittleAngel gave was correct, but you did not follow it. You tried to run an "upgrade" when what s/he said to do was use the "rescue" function-- which I'm almost certain exists on the RH install CD, but not sure if it will let you reinstall the bootloader, though you could always do that manually once the system has booted even to init 1 (text-based, root-only access for repair purposes).
The easiest thing to do would have been to boot to single-user mode, via RH CD1, or boot to a full Linux desktop using a LiveCD distro such as Knoppix.
You would then run cfdisk
to view and confirm your partition table layout (since we're all clearly confused about that), and write down which partition is which.
You would then mount the RH /boot partition and edit (as root) either /boot/grub/menu.lst
(whichever one RH uses), to confirm that GRUB is still pointing to the correct partition for XP (since it's not clear if XP re-installed to the same partition or not; likely not since it changed drive letters, which it should not have done for a reinstall afaik). Save if necessary and exit the text editor.
You would then type grub
in a root terminal (you already have one if booted into a single-user RH install; if using a Live CD, you'd have to open a terminal, su to root, mount the RH / partition and use the chroot
command to make the RH partition the current root filesystem (rather than the CD's), so that when you run the grub shell as above, you're using the correct GRUB). Once in the RH grub shell, you would reinstall GRUB to the MBR as follows:
Code Listing 3: Installing GRUB in the MBR
grub> root (hd0,0) (Specify where your /boot partition resides)
grub> setup (hd0) (Install GRUB in the MBR)
grub> quit (Exit the GRUB shell)
It might sound hard, but it's a lot easier than reinstalling 2 OSes and all the programs that you were using beforehand.