Do you have a bootloader for Linux? I assume this could work with Grub but I only use Lilo, so this is what I do:
1. Check where you have your bootloader (Lilo in my case) installed - open up /etc/lilo.conf and view it, check for the boot= line. It should be a hard disk or a partition.
2. Make a copy of the boot record where the bootloader lives. If it's installed on /dev/hda3 for instance, this line would work fine: dd if=/dev/hda3 count=1 bs=512 of=./boot.lnx
3. Copy the file to the Windows C: partition by whatever means you prefer (mounting the partition, copying it to a floppy in Linux and then boot Windows and copy the file from the floppy onto C:, whatever).
4. Edit C:\boot.ini in Windows. Add a line pointing to the copy of the Linux bootloader you copied to the C:\ root - add C:\boot.lnx="GNU/Linux"
at the end of the boot.ini file. You may want to make the timeout shorter too as the default of 30 seconds is pretty long IMHO.
Reboot and choose right or wrong (Linux or Windows) when the Windows NT Bootloader (which is used in WinXP) pops up.