IIRC, a related issue that came up on HN a while ago is unpaid overtime. As any employee programmers surely know, giving employers unpaid overtime when projects are behind schedule is especially bad, because it creates moral hazard (incentives to set excessively tight schedules). But everyone does it, because it's expected (if you won't do it, they'll hire someone who will, right?).
Regulation -- punishing employers who accept unpaid overtime, and somehow widely enforcing these rules -- is one of very few approaches that seem theoretically able to make any difference to this situation.