I was just laid off from a company just like this. The company had $400M in gross sales. I was hired as a senior web developer. My direct report had been with the company for 10 years, but had zero knowledge of web development. It was extremely frustrating to deal with someone that even after 3 years at the job still did not have rudimentary concepts of web development and architecture down. I had to lead every initiative to get anything done--like using a methodology in application development; separating the web and database servers; getting working backups of the SQL server that ran the company's intranet; version control using subversion; separating development, testing and production on to different servers; the list goes on.
She was put into this position by a CIO that was hired a year before I got there. He had been in the industry for some time, but his knowledge was a decade behind. Most of the IT department was MSCEs--actually they may not have even be certified. The company's DBA was terribly inadequate and useless. I usually tried to avoid having to contact this person. There were a couple guys that had some savvy, but for the most part they were clock punchers. The one thing that drove me crazy is that there was not one single programmer (ie someone that knew Java and C) on the IT staff. They would always hire a consultant. That person would come in and take a month to get up to speed and then spend another month undoing what the last person did and then another couple months of actual development that may or may not work right. That person would complete the contract and we would never hear from them again. So to fix or maintain the code they would have to hire someone else. Also the mantra around the IT department was to buy a piece of proprietary software, opposed to developing their own solution or looking at open source. I think that most of the people were intimidated by having to use the Linux command line. I lead another initiative to use MySQL and Subversion--the first use of open source. And when it was up and working with costing zero in budget for software, they were impressed with the bottom line but still skeptical because it didn't have a MS logo on it.
The problem lies, IMHO, in many cases the people with seniority have an education and knowledge that is decades old (LOL they know how to program in COBOL!). It's only in relatively new technology companies where they are hire because of a person's knowledge and not their seniority in the industry, do the CTOs and CIOs usually have current knowledge. As for most corporate IT departments, I do not think that the typical corporate hierarchy produces the best CTO or CIO.