First of all, I formatted the USB drive with one vfat partition. Then I copied the contents of the ISO over. That and some prodding in grub.conf is enough to get the ISO working, and there is a whole lot of extra space in the vfat partition.
The entire contents of all of my computers’ hard drives is encrypted, but that leaves the boot partition. So I moved the boot partitions onto the vfat partition, each in a separate folder labelled by the host. Then, I added entries to grub.conf for each host. The USB drive boots and a boot menu appears with all of the ISO’s entries, plus a list of hosts. I choose the right host, then boot.
(I need the USB drive mounted before I can update the kernel or the microcode.)