I do not see how a Linux partition 'is in D': Windows recognizes Linux partitions internally (as 'unknown'), but does not give them drive letters.
So if you really have C, D, E and F partitions, there should be either at least one other, the one that has Fedora, or there are only three ntfs/fat32 partitions C D E.
If your Fedora still works, open a terminal and do:
This should list your partitions and their file systems (ntfs, ext3, whatever).
All you really need for reinstalling WinXP is your C partition (shown as sda1 or hda1 by, e.g., fdisk -l).
You would not have to touch the other partitions.
Note however that you have to watch carefully what you tell the WinXP installer to do when you do a customized install.
I cannot remember exactly all the steps I took, but I have indeed reinstalled WinXP on my machine, without any trouble, and with a Linux bootloader in my MBR.
Writing a new generic MBR: you can do that by booting from a WinXP rescue CD and doing
from a terminal (console).
But check documentation, I am not sure about the exact command.
Another option: use a SuperGRUB Live CD. This also has an option to write the generic MBR that WinXP likes.
In both cases you will have to reinstall your Linux bootloader. You can again use SuperGRUB to achieve this.
Finally, is your WinXP corrupted, or is the configuration of the bootloader corrupted? If the latter, checking this first can save you lots of time and trouble.