I've succeeded but I had to use scandisk under windows, which is
cheating. Fsck would be the command in unix to fix the file system
corruption but does not work well for fat32.
Fdisk is about partitions not the FAT. mkfs would create a new
filesystem but
I've not tryed that.

I got a bad filesystem because I've got old drivers which fail when there
is too much write buffer used on the host side. So I've got a script which
does a sync after copying each track. The added bonus is I can accuratly
workout the transfer speed - often over 700MBytes per second. You might
have a similar problem with your usb.