You can do this in 2 ways: 1) Having grub on internal hdd with menu entry for external hdd /boot/kernel... alternatives 2) Having hardware startup provide for "native" boot straight off of external hdd.For this option to work, grub must obviously be installed on the external hdd,and that hdd install /etc/fstab needs to be updated to use UUIDs rather than /dev/sdX names; I believe UUID mapping is automatic at *some* point, not sure when in install or later bootup sorry.
Use GRUB from the internal disc. However, since sd* will change, regarding to what is when connected to USB, you need to use UUID or label for fstab too.