In North America, pretty much any white collar computer professional job can be considered "overtime exempt" (meaning that the company isn't legally required to pay for overtime), because the US Department of Labor says so.
(Somehow government bureaucrats are considered eligible for overtime, though... funny how that works.)
And, because pretty much any computer professional position can legally be considered to not qualify for overtime pay, that is the defacto standard in the industry. So yes, it is common to the point of being expected that a computer programmer (or really anyone in the IT field) will be paid for a standard, 40 hour work week, but be expected to work more than 40 hours a week.
Like everything else, there are bad places that abuse this and basically force their IT people to work 60 and 80 hours a week (and even longer), there are good places that won't make you work more than than 40 hours, or pay you extra if you do, but the vast majority of places fall somewhere in between. Where most places fall (in my experience, and the experiences of my colleagues and "professional network") is that you'll have a 40 hour work week, but be expected to put in "a little extra time" to get things finished... which works out to a few extra hours a week at most.
Lawrence's answer has really good advice about avoiding the video game industry and start-ups if you're looking to avoid unpaid overtime, but other than that, at a normal company things will tend to ebb and flow as the business demands. For example, at my current employer in the past 6 months, I've had weeks where I worked in excess of 110 hours and weeks where I barely put in 20. It's much more normal that I'll have 45 or 50 hour weeks that I'll "make up for" by arriving an hour late or leaving an hour early every day the next week. Basically, any employer worth working for is going to recognize when its employees are putting in extra time, and let them "make it up" by working less after the deadline's passed, and be careful not to burn their employees out with too many long hours.
Moreover, the wonderful thing about programming (and IT in general) is that it's a profession that's in high demand. So, if you find yourself working for an employer that doesn't treat you well, it's much easier to find a new employer than in most other career fields.
The details from the US Department of Labor's site are below, and, for reference, though it mentions "not less than $455 per week", I have friends in dead-end, minimum wage jobs who make more than that. So that basically means any salaried job for a white collar, computer professional can be exempted from overtime, if the employer so chooses (and, as mentioned, because they can, most do).
Section 13(a)(17) of the FLSA provides that certain computer professionals paid at least $27.63 per hour are exempt from the overtime provisions of the FLSA.
...
Computer Employee Exemption
To qualify for the computer employee exemption, the following tests must be met:
The employee must be compensated either on a salary or fee basis at a rate not less than $455 per week or, if compensated on an hourly basis, at a rate not less than $27.63 an hour;
The employee must be employed as a computer systems analyst, computer programmer, software engineer or other similarly skilled worker in the computer field performing the duties described below;
The employee’s primary duty must consist of:
The application of systems analysis techniques and procedures, including consulting with users, to determine hardware, software or system functional specifications;
The design, development, documentation, analysis, creation, testing or modification of computer systems or programs, including prototypes, based on and related to user or system design specifications;
The design, documentation, testing, creation or modification of
computer programs related to machine operating systems; or
A combination of the aforementioned duties, the performance of which requires the same level of skills.