What do you mean I need to install Grub?
What I said in my previous post was that you need to install Grub to the master boot record of the "external drive". Based on the error message you get when you boot without the external attached, you have installed the stage1 file of Grub to the master boot record of the "internal drive" so that when you boot without the external attached, the stage1 file in the master boot record of your internal drive is looking for the remaining files of Grub needed to boot. Since these files are on your dis-connected external drive, Grub can't find them.
Since you are using Ubuntu 8.10 and your Ubuntu partition is on sdb5, the commands to install Grub to the mbr of the external would be to log in as root:
sudo grub (prompted for your password, enter it, hit enter key, get grub prompt - grub>)
At the grub prompt type:
In the terminal open the menu.lst file:
sudo gedit /boot/grub/menu.lst
At the bottom of the file enter the following:
title windows xp
This will allow you to reboot from Ubuntu to xp.
To change the internal master boot record to include xp bootloader info use your xp installation CD, type 'R' at the prompt or select Recovery mode and enter: fixmbr
if that fails, enter fixboot
If you don't have a full installation CD, you could download SuperGrubDisk and use it to repair windows mbr.
Doing this will only allow you to boot Ubuntu from the external when you select the external in the BIOS. It is possible to boot Ubuntu from xp but, that's another story.