In short here's what you do:
Prepare the USB flash drive
Boot the computer from your USB flash drive.
Install Ubuntu as you would from a normal boot CD
A running Ubuntu 8.04 or any ubuntu version installation
A USB device (stick, pen-drive, USB hard disk) that has already been formatted with FAT32 and has enough free space to hold your Ubuntu installation image
A Ubuntu CD image downloaded from the Ubuntu servers or mirrors (*.iso file) or from here
On the root directory of your USB device, create a folder “install”
Copy the installer kernel and the initramdisk into this folder (Download source below.You need the files “vmlinux” and “initrd.gz”).
Download source for the installer kernel and initramdisk
You need to download the files “vmlinux” and “initrd.gz”.
Note: You need to have the installer that fits the architecture of your Ubuntu version you want to install. In other words, you need a amd64 installer if you want to install an amd64 Ubuntu .iso image and the i386 installer for an i386 iso.
From the installation iso image you downloaded, copy the folder “isolinux” to the root directory of your USB device (right-click on the .iso file, choose “extract here”). Rename “isolinux” into “syslinux”. Go inside the directroy “syslinux”. There, rename the file “isolinux.cfg” into “syslinux.cfg”.
Make the stick bootable: Use fdisk to set the boot flag,
Install syslinux using the following command
sudo aptitude install syslinux
Now use syslinux to install a boot sector on your USB device
sudo syslinux /dev/sdbX
where sdbX is the device name and number of your USB device, check with “sudo mount”. A file called “ldlinux.sys” will be created in the root direcotry of the USB device.
Copy the Ubuntu CD image in the root directory of your USB device (Contents of USB you can see as follows).If you are using i386 you need to copy the complete .iso image in to the root directory of your USB device.