That is flat-out not true. What's advertised as a 1TB hard drive is based on base-1000 (SI) units instead of proper binary units. That's why the discrepancy is there.
In binary units, a terabyte is 1,099,511,627,776 bytes (2 ^ 40), compared to the SI terabyte which is 1,000,000,000,000 bytes...