Win7 was incorrectly installed from another OS which is why it is lettered D when booted. It should always show as C if it is correctly installed from boot.
In addition C: XP holds the System boot files for Win7 as shown by the System Active flags. So you likely installed Win7 from C and it placed the boot files on C configuring a Dual Boot as it does when installed last.
In addition all of your data drives are incorrectly marked Active which will further confuse the installer or Repair function. So start by marking them all Inactive:
Partition - Mark as Inactive - Windows 7 Forums
What I would then do is unplug XP HD, boot the Win7 installer to reinstall Win7 from boot so that it claims the letter C. Then plug back in the XP HD and wipe it with
Diskpart Clean Command, create and format a partition in Disk Mgmt.
Partition or Volume - Create New
If you want to keep Win7 on D, then mark D Active, unplug XP HD, boot the Win7 installer to run
Startup Repair - Run 3 Separate Times until Win7 partition boot and holds the System Active flags. Then plug back in XP HD, wipe it using
Diskpart Clean Command, format in Disk Mgmt.