What file system are you using, NTFS? The amount of space a program says it occupies is only a very rough estimate. For example, NTFS drives also keep records of short DOS filenames for each file on the hard drive, and this eats up a lot of space. There is a setting in the registry to disable this, though I'm not exactly sure what it is. I use Totalidea's Tweak-XP program to disable it although this program isn't free.
Not only that, but the windows pagefile (swap file) is constantly growing (up to gigs in size) until next time you restart your computer.
So you say this happens a lot when you install or uninstall software? Windows XP has a feature called System Restore that periodically takes snapshots of your system, especially anytime you install or uninstall. This eats up a lot of hard drive space, but allows you to revert to a previous backup in case stuff goes wrong in your system.
To change system restore settings, go to the control panel and then to System Properties. Go to the system restore tab. There, you can choose the maximum amount of hard drive space that system restore eats up, or you can disable it entirely. System restore on my computer is set up to eat a maximum of 7 gigs (out of the total of 240 gigs that I have).
All of these things together can contribute to the amount of space that you are losing when you install and uninstall software. Of course, there are other extreme cases, where old motherboards incorrectly detect large capacity drives, as they were manufactured before such large drives came into existance. In such a case, you might have a 100 gig drive recognized by your BIOS or Windows as 2 gigs, or something ridiculous like that. It doesn't look to me like this is what's going on here. Rather, I think it's just a combination of the file system, system restore being enabled in WindowsXP, and a growing pagefile. All of this is - unfortunately - normal for a Windows user.