I'd go with what Linux Canuck says, except that in my case, GRUB saw
the external drive as:
root (hd1,0)
I had installed it on the first partition of the external drive.
When booting, then the boot drive is drive zero, so I had to edit the entry to:
root (hd0,0)
Once you are up and running, take note of what you edited.
Then from a terminal enter:
sudo gedit /boot/grub/menu.lst
Then make the same edit that you did in Grub, whichever it turns out
you needed. Save and it makes the change permanent. Hey presto, no
more booting problem.
From then on, you will boot just fine. You will probably find all the
other entries in menu.lst skewed as to drive number also. Edit them
all, if you want all the choices to work.