The reality is there are actually plenty of programming positions that are perfectly suited for a career programmer who doesn't particularly love it and just wants a steady paycheck and a decent home life. But these positions aren't at Google or Facebook or the hottest Silicon Valley startup, and they're not going to ever pay $150k+ or even $100k+ (they might start at half that). You don't need to know what a suffix tree is. You don't need to have ever heard of bloom filters. These positions probably aren't at many of the companies posting in the 37signals job board, because that board is naturally going to attract job seekers who are more enthusiastic about programming as both a craft and a means to a paycheck.
I think a lot of posters here seem to be wanting too much in exchange for too little. In every industry, it's always been the case that the top companies have tried to hire the most "passionate" employees--and yes, that means employees who might work overtime while smiling about it. I don't think this is so evil when there are plenty of other choices.
I do think it's a bit disingenuous, though, to want to be part of the next explosively successful company while still putting in the minimum effort to get a steady paycheck. This forum is disproportionately full of people wanting to get at least somewhat wealthy off of software development, people who want the same compensation as big firm attorneys and doctors. Those lawyers probably work more than the average over-worked programmer at a top company, and the doctors almost certainly do. The attorneys and doctors also all necessarily went to graduate school and probably took on a lot of debt that the average programmer doesn't have. The fact is that, across all industries, jobs with this level of compensation are rarely 30-40 hour a week lifestyle jobs.