I know this can be done with Linux - curious if it's possible with XP (commenting on Vista or 7 is fine, too).
good old BartPE is your friend:
p.s.: preparing a USB flash drive with BartPE (or any Windows installation disk for that matter) has just gotten easier, thanks to this nifty little tool: WinToFlash
(credits to Lee M. over at downloadsquad.com for this nice find)
Google is always your best friend:
EDIT: Sorry, I have not carefully read this, but it seems you can find many answers from google.
Yes, it is possible with winxp. I've tested and run winxp on usb for many times and it worked well.
The concept is simple, all you need is a vhd disk image which contains a winxp (full or mini is up to you) installed with winvblock drivers.
You can you oracle virtualbox to create the vhd file.
After all, you use grub4dos to boot the vhd image.
I found a full article here : http://www.linuxbyexamples.net/2012/08/How-to-install-and-run-a-full-winxp-on-usb-disk.html
Hope it will helpfull.