We're people, damnit. We choose to work overtime for various reasons. Some of which include: putting dinner on the table, keeping our jobs, getting our foot in the door, and so forth.
In my experience there are only 3 cases for working overtime:
1. You're a new, mediocre, or terrible programmer. You've been given three months to deliver a web site using a framework that practically holds your hand and wipes your ass and yet you still need more time. Everything seems hard. There's nothing you can do but brute-force your way to the finish line: stay up late and work that overtime to get it done and make up for all the time wasted googling, procrastinating, and debugging with a shotgun.
2. The suits messed up. They set a deadline without consulting you. They took on a contract with an incredibly short deadline because the business needs the money. They forgot to plan ahead for the big industry conference and they need something to show off to the other suits that will be there.
3. You've entered a culture of slavery. You just got your foot in the door at a big company. Unfortunately things have been sliding downhill and they never told you just how bad it has gotten during the interview process. Some people who stick to their guns will run for the hills, but you've got bigger responsibilities and cannot afford to take another month off job-searching. If you don't join in, they'll just make you look bad and the suits will fire you.
For me it's simple: if I can't get it done in 8 hours a day, someone didn't consult me for an estimate and its their fault. I may choose to work the overtime to get it done, but it's not something I personally tolerate. I value my life more than my work and my free time is important. But sometimes you have to do what you have to do to put a roof over your family's head and dinner on the table.
It's not as stupid as, "programmers love working overtime because they're passionate people!"
I'm passionate about what I do. But I'm passionate about life. Programming is a part of that. Slaving away to make some other dude rich isn't.