I've worked the long hours for three separate reasons in the past. Maybe it's unhealthy and maybe not, but in my experience the motivation behind it makes a difference.
Reason one: Short term emergency. I've done all-nighters at customer sites, to install fixes, troubleshoot their system or just comfort their engineers. These are often less than a week, but they interrupt your routine. I actually enjoyed these times, even if I didn't have time for anything else.
Reason two: Project is behind schedule. Regardless of the reason, the project is behind schedule and management things you can make up the time by working harder. It is unlikely that you can explain Fred Brooks to the guys putting pressure on you. They want to explain how much it costs to set up the marketing for the release date. Unless you get really lucky, working harder isn't the answer. Cut features, change the schedule, lose the ability to sleep, or change jobs.
Reason three: You have an interesting puzzle and you have to solve it. When the program is so interesting that a co-worker has to remind you to go home, then enjoy it. Work as long as you like, but set up cron to remind you to eat at least once per day. This is the kind of behavior that your family might find annoying. Keep a note pad with you in case you get a brilliant idea, save your work and go home. If you're a hacker, then this just happens.
It can be confusing when you get all three motivations going at once. I left my last employer for reason two, but I started my own company to enjoy reasons one and three. I hope you can also find a job where the motivation for long hours of work is your own.