I totally agree with you - for many programmers, programming is just a job. And I'm not saying that's wrong, but I work with a lot of these developers and my issue / concern is that they are not actually very good at their job - they get by only because expectations of IT in their organisations are low, something which is true in most large corporations and many smaller ones.
When the people paying the IT bills have low expectations to begin with, and are often disappointed with the applications they are given, IT becomes devalued.
I'm working with a team at the moment where we have introduced a structured data access architecture (.NET shop, so Entity Framework underpinning a repository model) and it has transformed the productivity of the team. They are no longer writing the same data access code in 5 different places, testing it 5 times and finding 5 different sets of bugs. They are now writing the code once, testing it once and re-using it.
The team hadn't even heard of Entity Framework, despite being a dedicated Microsoft/.NET shop and Entity Framework being around for several years. Getting them to move from their hand-coded approach, which was what they learnt for .NET 1.0 was a challenge but, having done it, they wouldn't go back and love the flexibility and power the new approach gives them.
This isn't a discussion about technologies though. I'm sure that there are many other teams just like this team and I'm interested in how to get to them to introduce new technologies and ways of working. The more productive we are as developers, and the more "delight" the applications we develop are, the more valued we will all be as an industry.