seems to me that while booting a usb stick is assigned its drive de3signation first. meaning that a usb stick would be sda and the hdd would be sdb. so, for example, ive installed b2.4 from usb stick which is at /dev/sda. so after install on boot its looking to mount sdb, but without a usb stick inserted the hdd is assigned sda and thus wont boot because during install the hdd was at sdb. so i insert the usb stick (just inserted, not booting from) and it boots proper since now the hdd is assigned to sdb.
the inverse is the same issue as well. if i install from cd /dvd the hdd is assigned hda as is appropriate, however if you have a usb stick inserted the hdd again becomes hdb and thus wont boot unless you remove the usb stick