Windows 7 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 Windows 7 as shown by the System Active flags. So you likely installed Windows 7 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 Windows 7 installer to reinstall Windows 7 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 Windows 7 on D, then mark D Active, unplug XP HD, boot the Windows 7 installer to run
Startup Repair - Run 3 Separate Times until Windows 7 partition boot and holds the System Active flags. Then plug back in XP HD, wipe it using
Diskpart Clean Command, format in Disk Mgmt.