The guid partitioning and efi are indeed the answer to usb stick booting (and I suspect other external enclosures ).
Just installed grub2-efi on a 2 GB usb stick, guid partitioniong, hfsplus 200MB partition.
It boots, and runs, and so can boot linux on the usb stick (will check that).
I have been playing with grub-efi and have it loading linux 2.6.26 custom kernel, agp=off
video=efifb, on MacBook c2d, and unable to get it booting from external or usb stick on other partitioning schemes, this is very encouraging as grub2-efi works very well, here on the MacBook internal drive, booting linux, macosx and legacy grub all from grub2 menu with a few rough edges. Also grub-efi has the added advantage being able to live on the Macosx partition where its grub.cfg is editable in Macosx, and it can load kernels from the same Macosx partition - to boot any external linux that the kernels can handle. And it is faster to load.
And for rEFIt.efi, it boots for me also off hfsplus on an MBR external or an Apple external, but then its stuck because it has to
ads-computer:~ admax$ sudo gpt -r show /dev/disk1
start size index contents
0 1 PMBR
1 1 Pri GPT header
2 32 Pri GPT table
40 419712 1 GPT part - 48465300-0000-11AA-AA11-00306543ECAC
419752 3019824 2 GPT part - 48465300-0000-11AA-AA11-00306543ECAC
3963871 32 Sec GPT table
3963903 1 Sec GPT header
ads-computer:~ admax$ date
Thu Aug 7 23:26:19 EST 2008
ads-computer:~ admax$ sudo su
ads-computer:/Users/admax root# cd
ads-computer:~ root# bless --info /Volumes/usb\ 1/efi/
finderinfo: 26 => Blessed System Folder is /Volumes/usb 1/efi
finderinfo: 74 => Blessed System File is /Volumes/usb 1/efi/grub/grub.efi
finderinfo: 0 => Open-folder linked list empty
finderinfo: 0 => No OS 9 + X blessed 9 folder
finderinfo: 0 => Unused field unset
finderinfo: 26 => OS X blessed folder is /Volumes/usb 1/efi
64-bit VSDB volume id: 0x3445D3DD33CB570B
hand over to grub lilo or other bios/mbr bootloader.
I find that grub1 on the internal hd can not see the guid/mbr usb stick, even after gptsync makes its MBR partiton info. And refit can see the usb stick but cant load linux kernel, so when refit passes the boot to legacy grub, that gets nowhere. It can run grub.efi on the usb stick and it will load linux, but in that case may as well just boot grub2-efi initially (done that).