If you are familiar with linux you can zero fill the entire drive there pretty easily then repartition and format in windows. I'm curious about the reported size however. My 512MB sandisk cruzer is really about 488MB which is about right if you figure they are using decimal instead of binary in reporting the size, i.e. 512,000,000bytes/1024/1024 = 488MB. Where do you get the 504MB size?
Here's an article on U3:
http://news.designtechnica.com/featured_article24.html
If it's a hardware spec/API, you may not be able to get rid of it, i.e. u3 may be launched by winxp upon detecting a u3 compatible device and that may have nothing to do with what's on the drive but rather the devices hardware signature to windows. You might be able to disable u3 form within windows somehow.