First, your BIOS have to have support to boot to a USB disk. If it does not, you have to use either a floppy or CD/DVD disc to use USB disks.
In order to boot up Linux from a USB, you have to make sure all the required modules are in initrd file. Some people set the kernel to have USB and its devices set as built-in. The USB storage software in the kernel works best as a module instead as built-in. Also you may have to edit the initrd setup, so it can detect the drives before moving on using pivot and other commands to boot up Linux.
installing a grub on a USB/SCSI device is easy. First use a Live Linux and boot to it. Next get your USB disk activated and mount it. Mount proc where you mount your USB disk. Then use chroot. After you have chroot, type source /etc/profile. Then you can type grub. In the grub command prompt, type root (hd<tab>. Pick the USB drive. Lets say h0 is your USB disk. Then type root (hd0,<tab> to pick partition where the boot directory is located. Next type setup (hd0). After it is done, type quit. Finally exit from the chroot and reboot.