I can only try to help with the GRUB issue. GRUB needs to load its files in order to be able to load other OSs, such as linux and XP. These files are located on the partition in which you installed linux. GRUB won't work without these files. Since these files are on the USB, GRUB won't work without it.
To get rid of this problem, you'll have to move GRUB's needed files onto the disk were you have XP. To do this, you'll need to create a linux partition there, then, from linux, re-install GRUB, using the commmand grub-install configuring it to install it's files on the linux partition on the XP disk. Read many of the available tutorials on configuring GRUB.
hint: grub-install --root-directory=/dev/"linux_partition_on_xp_drive" hd0
afterwards, update your menu.lst file, which should be in the /boot/grub folder on the linux partition on the xp disk.