I just installed ubuntu 12.04 server with Vaxquis' trick in USB with grub4dos.
Apparently the server version dose not support cdrom-detect and iso-scan in installer. So we can ignore that part. Here is my config:
title install Ubuntu server 12.04
find --set-root /ubuntu-12.04-server-i386.iso
map /ubuntu-12.04-server-i386.iso (0xff) || map --mem /ubuntu-12.04-server-i386.iso (0xff)
map --hook
rootnoverify (0xff)
kernel /install/vmlinuz file=/cdrom/preseed/ubuntu-server.seed boot=install splash --
initrd /install/initrd.gz
boot
WHen you get CD-ROM detection errors, just "Continue" twice back to Installer Main Menu.
press ALT-F2 to console. Type in:
mkdir /mnt/tmp
mount /dev/sdb1 /mnt/tmp
mount -o loop -t iso9660 /mnt/tmp/ubuntu-12.04-server-i386.iso /cdrom
press ALT-F1 back to Installer. Continue on "Load installer components from CD"
note: you can use file=/cdrom/preseed/ubuntu-server-minimal.seed to install a smaller server or remove the whole "file=..." part to select components manually. If you don't have enough memory to load entire iso to memory, remove "|| map --mem /ubuntu-12.04-server-i386.iso (0xff)" from config. To avoid "error 60", better format USB with "mkfs.vfat"(e.g. mkfs.vfat /dev/sdc1) and then copy the iso file to it as the first file. Then copy bootlace.com, grldr[.mbr] and menu.lst to USB and run
./bootlace.com /dev/<your_usb_device> (e.g. /dev/sdc)