Have you considered using isohybrid, part of syslinux/isolinux?
This means you create a single image, which can either be used for CD boot, or can be directly copied onto a USB stick (or hard drive) and will run from that. All you need to do after running isohybrid is
dd if=backtrack.iso of=/dev/sdc bs=1M
to get a bootable stick. Basically isohybrid adds a bootable MBR at the start of the image, which then boots through the cd isolinux code.
Then there is no dependency on unetbootin, VM images, or strangely formatted USB sticks, which should make support easier. All USBs created through this process will have the same boot loader, partitions and (fictional) geometry. Any remaining space on the USB drive can be allocated to a new partition and used for user storage.