Maybe there is an issue with spaces, it is not:
"map (hd0)(hd1)"
it is:
map[SPACE](hd0)[SPACE](hd1)[ENTER}
Usually (not always-always but often enough) when you select to boot from the USB stick in BIOS, the disk order is changed, putting the USB as first disk, hence the need to remap, so yes, (hd0) is the first disk when you do not boot from USB, but when you boot from USB, the USB device becomes (hd0) and the internal disk becomes (hd1), maybe on your particular computer something else happens.
You can check "which is which" and the actual partitions on the devices with:
geometry (hd0)
and
geometry (hd1)
The instructions I gave you till now are for attempting to boot as if the USB wasn't connected, but you can try to chainload directly the Windows bootloader.
For WINNT up to XP the bootloader is NTLDR
For Vista and later it is BOOTMGR
From the command line you run either:
find --set-root /ntldr
or
find --set /root /bootmgr
then you run only
root
the first command sets root to the partition where the file is found, the "root" command will display "current root", i.e. something like:
(hd1,1)
Then you use this piece of info as follows (example for Vista and later):
chainloader (hd1,1)/bootmgr
grub4dos will return a message *like* "Will boot ..... from drive=0x8n, , partition=0xn(hidden sectors=0xnn)"
then:
boot
The potential issue with the above is that grub4dos will set root to the FIRST instance of /bootmgr it finds, which might (or might not be) the right one, if you do not remap the disks, and if there is a BOOTMGR in root of the USB stick/drive it will establish root there.
The grub4dos command line is not much different from a DOS or *nix command line, it needs some minimal time to get used to it, the generic approach is:
COMMAND [Options] [parameter1] [parameter2] [parameter ...]
each part is separated by [SPACE] and is executed by [ENTER]
Wonko