Suresh writes, "I work for an Indian body shop. At the time of signing up with them in India, I paid a fee to them, paid all the expenses related to the American visa, and then signed an agreement with them that if I left before the three year period, I will need to pay them $20,000. Now that I am in the US and have been working with them for about two years, I have found an opportunity to switch employers. What will happen if I don't pay them the amount in the contract? Can they hurt with my application for a new H1B visa or green card?"
You have to remember that you are a citizen of your India and covered by laws of that country till you take the oath of naturalization in the United States (assuming you get to that stage because most likely you will be denied a green card if you are charged and convicted in India, because you will need to declare that in your adjustment of status application). If this company decides to sue you for damages or breach of contract, the Indian law enforcement can also come after you. Since this is a relatively small amount for the Indian Government to get involved, but if the court issues an arrest warrant, you will be arrested (most likely when you arrive at the airport) if you ever visit India, even as an American passport holder.
Since the amount is relatively small, you are better off making a clean start by paying it. If you have a dispute with the firm, you should settle it in court. You should also investigate if this firm has a presence in the US because you might be able to sue them in an American court (a lot of time such clauses in employment contracts are declared null and void). A good attorney will be able to advise you in this matter. You need to put this issue behind you because it can come to haunt you for years to come.