because storage is measured differently by your computer then by your harddrive maker.
I can never explain this clearly for some reason, but suffice to say that harddriver makers say a harddrive is 40gb if it is 40000000kb, but your computer actually uses a different calculation.
To make it a little easier to understand, assume you had a harddrive that was 1mb...your computer knows it as 1024 kb, but the harddrive company woudl say there harddrive was 1mb if it has 1000kb...you're getting ripped off of 24kb.
Now, multiple that by 40,000,000 and you see that you're loosing something like 900mb of space in the translation
Then, consider that your harddrive really does not store things in a 1:1 ratio, but in clusters
So, let's say you make a 1kb test document. When you formatted your harddrive, windows divided it in to discreet storage units called clusters, which are not 1kb, but something else (could be 512bytes, 4kb, etc.)
So let's say that you have the kb file and a cluster size (or you may have heard it called an allocation unti) of 4kb. That 1kb text document will actually take up 4kb, not one, since the smallest unit a file can occupy is 4kb. A 13kb text file would take up 4 clusters, wasting 3kb, etc...
This is called overhead
And then there is stuff like hidden files parts of the drive that are not reported, for example, the master file table is set aside when you format your drive in ntfs, which is about 12 percent of your drive (the mft is like a database of where everything is on your drive), but this is not reported by Windows as available, so it is removed from your freespace, too.
All rather messy--don't think too much about it