#Erstelle Image
sudo dd if=/dev/zero of=usb.img bs=1024 count=4194304 #je nach Größe des USB-Stick, ich hab hier für 4 GB genommen
#sicher wegen der Größe bin ich mir allerdings nicht
#Dateisystem aufspielen
sudo mke2fs -q -F usb.img
#Verzeichnis zum Mounten erstellen
mkdir mount_point/
#mounten
sudo mount -o loop usb.img mount_point/
# jetzt kannst du Dateien ins Image kopieren...
#GRUB reinkopieren
sudo mkdir mount_point/grub
sudo cp /boot/grub/stage1 mount_point/grub
sudo cp /boot/grub/stage2 mount_point/grub
sudo cp menu.lst mount_point/grub #hier kannst du deine angepasste menu.lst reinkopieren
#unmounten
sudo umount mount_point/
# Arbeitsverzeichnis wieder entfernen
sudo rm -r mount_point/grub
#GRUB installation
# ich weiß nur nicht was du für "fd0" brauchst, wenn du das mit einem USB-Stick machst.
echo "device (fd0) floppy.img\nroot (fd0)\nsetup (fd0)\nquit\n" | sudo /usr/sbin/grub
Wie das mit deinem Programm so ist hab ich nicht ganz verstanden...du hast ein Image des Programms??
Das Programm muss ja bootfähig sein, sonst hilft GRUB auch nichts.
Evtl hat dein Pogramm schon einen eigenen Bootloader?
Evtl reicht es, wenn du das Image auf deinen USB-Stick kopierst..?
Achso, das Image müsstest du mit
dd if=usb.img of=/dev/<DEIN_USB_STICK>
auf den Stick kopieren können
Am besten du mountest das Image (deines Programms) ersteinmal (siehe oben), dann siehst du, was da so drinn ist.
Dann installierst du GRUB rein (siehe oben) und kopierst es einfach mal auf deinen Stick und testest mal.
Leg dir aber bitte Sicherheitskopieen des Images an! Achja: Die Daten auf dem USB-Stick sind dann weg, das ist dir klar, oder?
Ich hoffe das hilft dir etwas

Am besten jemand kann diese Beschreibung noch etwas verfeinern...