The size discrepancy is due to how your filesystem formats a drive.
When Windows wants to find an area on your drive, it has to have formatted it into sectors. They're like addresses for certain areas on the hard drive platter. The problem is that you're always going to have some leftover space on the drive that won't make a full sector, so this space gets marked as inaccessible and is wasted. That's what you're seeing here. This is also why you may see two different identically sized drives that "lose" different amounts when formatted. They may have a different number or size of platters inside, and the space is lost on a per platter basis.
If you're using the Windows FAT32 filesystem, you can convert the disk to NTFS (NT File system) and sometimes that will reclaim a bit of the space. I believe NTFS uses a smaller sector size, or maybe just a different method of addressing the space, but it's slightly more efficient, and usually a little faster. Unless you need backward compatibility with Windows 95 or 98 on the same machine, you should be ok to run NTFS under XP.