Eh, happens even to the best companies in US. Microsoft employment agreement stipulates that if you quit earlier than one year, you have to pay back all relocation expenses (visas, temporary housing, etc). Easily tens of thousands of dollars.
The end result is that you are on the hook for $10k+ if you decide to quit Microsoft - very similar to the amount charged by Indian outsourcing companies in the article. There are legitimate expenses beyond visa fees that companies incur to import foreign worker and any company will want to be compensated for them if employee quit early.
I have been in that situation and it was made crystal clear by the documents that I was signing that I was on the hook for a big chunk o' cash (signing bonus + relocation costs to move me halfway across the country) if I decided to leave before a year was up. That's a situation I willingly entered into, having many alternate choices. This wasn't something that was just thrust on me the day I showed up at the new job; I knew about it before I turned in my notice at the old one.
Many (most?) of the people in this situation don't have that luxury of choice and freedom.
it sounds to me that the relocation money never passes through the employee's hands - microsoft probably deals with relocation vendors directly (most likely have long-standing relationships), and it is not part of your compensation. it's an expense that you may or may not choose to incur, with stipulations.