Tim Stall has a good post on how to discourage a developer from working overtime. I think what he misses though is that these are things that would discourage anyone, not just a developer.
A friend of mine left her non-programming job of several years in 2008 for a new job that is in many ways less flexible than her first. The previous organization was surprised - they thought her performance had slipped because she started a family and wasn't interested in work anymore. The truth was that they had changed her job so that she was left only with tasks that she found boring. They constantly changed her priorities; every email she got from her supervisor was marked "urgent". After awhile, she lost all motivation to do her job.
Sometimes we act like developers are special creatures. Actually they are pretty normal.