A full answer to this requires a knowledge of contract law, but the moral principle here is that a contractual agreement is binding.
A non-compete clause is part of an agreement between an employer and an employee. It recognizes that an employee, after working for a particular company, has intimate knowledge of that company's processes and methods, and so represents a competitive threat if he leaves the company and immediately works for a competitor.
A non-compete clause requires a "cool-down" period between employment, requiring an employee, on leaving a company, for an amount of time, to not work for a competitor.
It's a simple requirement of an employer on an employee, and there's no reason at all why non-compete clauses should not be allowed in employment contracts.
Opponents of non-compete clauses cite that "a man should be free to work for whom he chooses". To which I answer: ". . . if he has not contractually promised to some party, to limit his own employment choices."
More fundamentally: if you sign a contract, you must adhere to its terms, assuming it is a valid contract. As far as I know, there are two things which can make a contract intrinsically invalid:
In other words, you can't sell yourself into slavery, and if you enter into a contract where you make a promise, but get nothing in return for it, you are not legally obligated to keep your promise.
Every contract involves a limitation on the behavior of both parties, because a promise is a promise to behave in a particular way. There is no reason why a promise not to work for a competitor for some amount of time after termination would invalidate a contract.
answered Oct 02 '12 at 11:17
John Paquette ♦