This is not true at all. I was a loyal T-Mobile customer for almost 8 years, I upgraded my contract, signed another two year contract (at year 6 of being a customer) and 6 months in I asked if they could unlock my phone because I was traveling to Europe and they told me that they don't do that until your contract that is up, and even then it was limited to a small subset of phones.
I ended up selling my phone on eBay and purchasing an iPhone 3G from a friend which I unlocked by jail breaking it!
I don't dispute your experience; I can only speak from mine.
I had T-Mobile from around 2003 or 2004 to August 2010. Every time I got a new phone (always subsidized with a new contract) I called immediately to ask them to unlock it so I could travel more easily. Each time they told me I had to wait 90 days. So I'd wait 90 days, call back, and then they'd send me the unlock code. Never had a problem.
I ended up selling my phone on eBay and purchasing an iPhone 3G from a friend which I unlocked by jail breaking it!