They don't really lie. It stems from the difference in definitions of prefixes.
Standard definitions:
Kilo = 1,000
Mega = 1,000,000
Giga = 1,000,000,000
Tera = 1,000,000,000,000
Therefore, in standard terminology Terabyte is 1,000,000,000,000 bytes.
In computing terminology, however, each new prefix is defined by being a positive integer in 2^10n, so:
Kilobyte = 1,024 bytes
Megabyte = 1048576 bytes
Gigabyte = 1073741824 bytes
Terabyte = 1099511627776 bytes
(Note, this terminology has now been officially replaced to avoid confusion with lame names, such as Gigibyte...)
Hence, your HDD probably has 1,000,000,000,000 bytes, which is 1TB in standard terminology, but in the old, but still widely used computing terms, this only amounts to 909.4947017729282379150390625 computer Gigabytes (Gigibytes).
Yeah, manufacturers usually choose to measure memory not incorrectly, but so that the seems to be larger than it actually is by the way most operating systems measure it. But a friend of mine bought a 500gb drive this summer that was about 502gb, so not all manufacturers are running this mini-scam. I think it was a Seagate but Im not sure.
Well, technically speaking the way manufacturers measure it is officially correct and the way the OS measures it is not. But yeah, it can be a bit deceptive.