To the surprise of everyone, I used to be an IT guy. I went through an Infotech program in high school and did quite well, setting the state record for technical certifications on graduation. I also worked two internships in IT and met a lot of great people along the way. While it was fun, I've moved on to programming and never looked back.
That's not to say I don't like IT. I enjoyed it a lot. However, there are some subtle differences that lead me to become a programmer. IT is mainly building and maintaining systems made out of solutions created by someone else . Building such systems was an incredible experience, but didn't satisfy my urge to create .
To people outside the industry, the two seem identical. We both work with computers, building solutions and then fixing them. We both hate deadlines. Our relatives make us fix their computers over Christmas. In short, both camps are computer geeks. Not only that, each camp could benefit from knowing a bit of the other's domain. Scripting can help a lot with server management and installs. Knowing how to setup and run a server can save a developer a lot of time. The two are locked in a symbiotic relationship - a company of either will eventually require the other.
So both domains are full of geeks, involve computers and actually contain quite a bit of crossover. So what's the problem? Let me greatly simplify the issue with an analogy: Imagine a simple project is like running a lemonade stand. Management decides that the stand should also sell cider. In IT, you'll need to procure a cider vendor and market the cider. Not a trivial task but still simple compared to programming, which will need to develop orchards, harvesting, cider presses, bottling, and transportation between all of the steps.
The reason for this is simple: very few programming projects are the same. The differences seem simple but can be deadly for those attempting to "cross the pond." Treating programming projects like they're IT can cause developer frustration with constant "minor" changes leading to many missed deadlines. Ignoring IT's extended flexibility for fears of "scope creep" can lead to customers annoyed with sub-optimal projects.
In my time working for an MSP that quite accidentally developed a software division, I experienced one side of this unfortunate misunderstanding. Fortunately, there's a good fix. IT and programming can work together, and well. The important thing to do is make sure that there's a separation of managers. As always, it's important to make sure those in charge understand the intricacies of the work being done.
 The same argument could be made for some programmers, with all the plugins, libraries and frameworks running around...
 It's also much more difficult to start and run an IT business.