I have had good results with two programs that manage hard drive partitions:
1. PowerQuest Partition Manager (the older version 5 is better in my opinion)
2. The freeware Partion Manager (see
http://www.ranish.com/part/)
Before you do anything, I suggest that you need to backup any critical data currently on the drive. Things can go wrong during the partition resizing and can render your drive unreadable. Please read all the information in the ranish.com website. I have had no problems so far (I know I have been lucky).
You will first resize the current partition to something you feel comfortable with. I suggest at least 10 Gb for Windows XP. Then you would use the space freed to create a new Primary partition (FAT32) that Linux can use.
Please let me know if you have any questions on this.