Exactly. Before I ever got a job programming I couldn't leave it alone. I simply had to do it. I enjoy my other interests and spending time with my family, but I'm also drawn to reading, playing, building in code. There's endless fascination there for me.
I do have some pity for people for whom it's "just a job." To spend approximately 1/2 your adult waking life doing something that merely enables you to pursue other interests and pay the bills. Poor saps. I suppose not everyone can get work doing something they find compellingly fascinating, but I wish everyone could.
I have at times had to suffer such treatment because I needed the paycheck even if I wasn't getting paid extra for the extra hours.
However there was still the choice to leave such a job and deal with the consequences.
On one occasion I wasn't even given the choice. It was expected and I didn't live up to those expectations. I wasn't that upset in the end because even though money was tight for a while I still made it through and got another job within a couple of weeks. I was much happier in the new position and most of the people I knew who worked for that company eventually left anyway.
At some companies I would get paid for the extra time or at least would be given paid time off later on. I just had to ask. Otherwise I would just go home at my normal time.
These days I probably wouldn't even work over time if you paid me extra. I only work overtime if I made a promise to deliver something by a certain date (and I rarely make those promises unless I'm certain) or if I have some stake in the company. That's largely because I'm in a position where I'm not living paycheck to paycheck anymore and don't need to work for my employers if I don't want to.
Admittedly if you're just starting out or this kind of "overtime culture," is pervasive everywhere ymmv.
Often I'll learn some maths, experiment with some new approaches to solving problems, or watch screen casts to learn how other people approach the craft.
I don't do it because I'm some corporate shill. I just really love programming.
I also have a wife, a child on the way, and my life seems pretty balanced to me.
I just look at overtime and think: well I only have so many minutes left to live, what's in it for me if I do this? Sometimes the answer is just money because that's probably what I needed at that moment... more often than not in recent years I don't bother unless there's equity on the line (which has never been on the table anyway). If my employers ever had a problem with it I just moved on. Things got tight but they never hit rock bottom.
It's all just about priorities and sticking up for yourself.