Furthermore, this issue generally plagues the contractor companies (those that provide workers to bigger govt companies - who don't really care and use contractors to get around this in the first place)
Quite a lot of private companies do the same as well.
Very recently (just 6 months back), a friend of mine, got an offer from an import/export company in UAE. They had a few interviews over the phone and agreed upon the everything (including salary, accommodations and so on..)
Once my friend (a Canadian citzien) landed in UAE, the company took his passport and then demanded that he sign a different contract (reduced salary, longer period, etc.) and refused to hand over his password till he signed it. He had to threaten to visit the Embassy, for them to hand it back to him. However, if he was a citizen of some 3rd world country like India, Pakistan or anywhere from Asia, or even some European countries - he'd not have a choice but to sign the new contract.
Furthermore, when he tried to leave - as he was no longer interested in working for the company, they refused to pay for his flight back as well.