Same problem here with an XP encrypted partition. It worked well with grub-legacy.
It seems that grub2 has some difficulties chainloading from an image file.
Looking at grub-devel mailing list (is there a similar problem under "Booting TrueCrypt Windows Hard Drive" topic) it seems related to partition or device mapping (not by grub itself, but by the chainloaded OS which maps them wrong.)
It is possible to workaround the problem only in a different configuration, where XP or Vista are on a secondary hard drive, using drivemap to swap drives (look at the mailing list).
No similar solution for XP on a different partition yet (aka the problem reported in this bug).