It all depends on the size of the company. If you take a job at a big corporation, with 20 other programmers, then don't be surprised if you have to claw your way up the career ladder, that's if there is a ladder in the first place. As soon as your grouped with the other programmers, you become a commodity, and a commodity that can be replaced with a cheaper option. Programmers can't expect to be treated any differently, until they provide more - its up to them to distinguish themselves. Fact is that a lot, and by that I mean most, have very poor interpersonal skills, and that's vital for getting up any ladder. Really, for a programmer to shine, they have to be prepared to fight through meetings and come out on top, they might have to sacrifice a weekend to proove a point. They might have to go above peoples heads and implant ideas. Most programmers that are in a rut, walked right into that rut themseleves. I think that you have 2 years at most to set yourself aside, get yourself into a position you can fight from. The whole problem is that in a big company, that's very difficult to do, in a small company that's very easy to do, as long as the director has basic IT knowledge.
The #1 selling point of any IT task is saving, if it saves money, or saves time, then it's easy to justify - to the point where anyone against the idea will look petty, especially if you prepare well for the usual mindless concerns that non-IT people have about IT.
For instance, when I started at my current job, the IT manager would have me doing all sorts of monotonous tasks, like checking MS Access reports and filling in spreadsheets manually. So the first thing I did was automate that stuff, I took over database development, and turned my job from 8 hours of chores, to 8 seconds of running a macro. Then I set upon the rediculous systems and replaced them with user friendly databases.
10 years later, and the IT manager is gone, I'm getting put through my MCSE, earn 3 times what I started with, and am a key member of staff that could not be replaced by off-shoring, couldn't even be replaced by someone higher qualified than me. I actually like my job mostly, I get to deal with lots of different people, and usually end up making their job easier for them. One of the directors told me once that without me and my systems, he thinks he'd need 25% more people at least. I'm a one man IT department in a very IT centric company (Semiconductors, nano-electronics) - but to be honest I wouldn't want it any other way - I couldn't work in a cubicle, and pity (or even doubt!) any programmer that does. Don't be a code monkey, code monkey is a miserable thing to be.
That's the way I see it at least - if you start with a big company with a team of programmers, it's much more difficult to set yourself aside as a key member of staff - and off-shoring is a huge threat to these roles anyway. If you want to use your skills to benefit people, and have good job security, then look at smaller companies with smaller IT budgets. A smaller IT budget means you have the chance to proove yourself, and justify a good salary before too long.
As I said though, before I started rambling, is that you have to be able to handle meetings efficiently, public speaking cannot be a factor, and with practice it really isn't. It's different when it's work related, IT people need to stand up and open their mouths for a change - if they can't do that, then they should just go back to their cubicles and wait on their replacements.
The games industry has cubicles too, games are just as much an industry as anything - don't think for 1 seconds that the games industry is this glowing oppurtunity for creative people. In fact I'd say the same rules apply - maybe working in a smaller game company, making mobile games or flash games or whatever - but working in a smaller company makes each individual 'bigger'.

Health, Ammo, and bacon and eggs!
