If Windows resides on a seperate hard drive (in this case being a SATA drive) than grub, then you must use the "map" option to make it think it is on the first hard drive.
Code:
title=Windows XP
map (hd0) (hd1)
map (hd1) (hd0)
rootnoverify (hd1,0)
chainloader +1
That will allow Windows to work with grub, if on a different hard drive. That is what my entry looks like. I have Gentoo on hda and Windows on sda (SATA drive). Grub reads each hard drive as hdx (x being your hard drive number, 0-whatever). IDE hard drives will almost always be before SATA drives.