The conventional wisdom appears to be that non-compete agreements are largely unenforceable, however I'd be careful in using that assumption: No company wants to deal with someone if they feel that person has no regard for contractual agreements to begin with.
States like OH and TX will enforce them vigorously (OH is so bad that I would never move to that state, nor work there). States like CA will reject them (except for sale of businesses). This is why MS fought tooth and nail for the jurisdiction of the folks who quit to work for Google to be in WA (MS' home) - where they are mostly enforceable vs CA (Google's home) - where they are not worth the paper they are written on.
If it weren't so difficult to get a ballot initiative going (I ran for election last year, and I had to learn a lot about what it takes to get on the ballot and also getting elected - which I didn't get), this is one of my pet peeves. I'd write it so that if you want to enforce a non-compete against a CO resident, then you pay their salary for the duration of the non-compete - even if the non-compete requires jurisdiction elsewhere.
Nowadays, they are enforceable, but there are lots of restrictions: http://www.hersh-law.com/lawyer-attorney-1078665.html
It's a bit surprising, but Texas can be a rather employee and consumer-friendly state in a lot of respects. Granted, it's a pretty backwards state in most other respects.
I had to sign one for my job this summer (small tech consulting firm that's now doing a couple products and less consulting), but it was pretty limited. It just said that I wouldn't work in the couple of pretty-specific fields that my company's products are in for the next year.
One nice thing about the one they gave me was that they had a clause saying that it did not in any way prevent me from using the programming knowledge that I'm gaining, just the specific knowledge about the fields the products are in.
Now, I wouldn't be comfortable of signing one much longer than a year. A lot can change in say, 5 years. But 1 year so that you can't steal their ideas or have an unfair advantage in competing with them because you know their plans is fairly reasonable.
http://mixergy.com/why-i-wont-sign-your-nda/
While I know a non-compete isn't an NDA, the reasons outlined in the article make a lot of sense and could be applied to reasons to not sign a non-compete. Particularly:
Reason #1: It puts all the obligation on me and none on you
H&R Block is infamous for attempting to bust people for breaking non-compete agreements. Yet, it has been in the news recently that H&R Block is being investigated for their practices in forcing employees to sign non-competes.