I have investigated non-compete agreements both as an employee and then an employer.
In the state of Virginia, broadly drawn non-competes are said to be un-enforceable. For example, if a non-compete agreement can reasonably be interpreted as making employees un-employable elsewhere, the scope is too broad. For example, if you work for a government contractor and your agreement prohibits you from working in any capacity as a government contractor, it's probably drawn so broadly as to be unenforceable.
Given that, I would think employees in Virginia wouldn't worry too gravely about broadly drawn agreements.
Legally in Virginia, employers may find that a broadly drawn non-compete agreement is equivalent to no agreement at all. I would think they should decide what crown jewels are worth protecting and focus their agreements and energy on those specific elements.
Employers should draw non-competes very narrowly, probably focusing on preventing former employees from cannibalizing the firm's customers. Before the hire, employees likely have no relationship with a business' specific customers. After working for a time, they learn deep inside knowledge of a business' specific pricing, processes, pitches, strengths and weaknesses, and especially customers. With that, they can destroy the business that trusted and nurtured them. This makes an ex-employee competitor much more damaging than a routine competitor who has no inside knowledge of a business' specific approach.
Regarding enforcement, such efforts seem rare for the average ex-employee acting in good faith, but a simple google search allows you to draw your own conclusions.
Regarding intellectual property, trade secrets, and so on, I would think that sort of issue is better addressed through non-disclosure agreements. In my experience as an employee, it was typical to be required to sign half a dozen different types of agreements as a condition of employment.
I should caveat all this with, I'm not qualified to provide legal advice, seek professional help, I'm just some yahoo,etc. :)