It's typical for Linux not to get any of the credit for several reasons. In the old days and even to a large extent today, it's slipped in under the radar of high level management.
Take a shop that is near and dear to my heart (no need to mention names) that run ~100 high end Sun servers. This shop also runs ~200 Linux servers in various supporting and front line roles. There are several reasons that Linux was used in place of Sun or other commercial products in many instances:
1) Proof of concept for a project at little or no cost, which worked so well, just turned into production
2) No licensing hassles
3) No purchase orders required
4) Many times could not be done on commercial OS, or more difficult
5) Could be done immediately where commercial products take time (because of some of the above issues)
6) Can tailor the products to specific needs as source code is available
7) Support/Bug fixes handled easily and quickly (capable experienced system admin/programmers in house).
and more...
Having said that, this shop still does not use Linux exclusively because to upper level managers, spending money for projects and making them complex is "sexy" to them. It gives them purpose and justification for their large salaries. There still are some canned commercial products that can be dropped in that are more appropriate and can run on high end Sun/HP/IBM/SGI platforms above what Intel can provide. Of course Linux clusters are coming along and I see this need disappearing rapidly as in this Shrek example.
Software is still an issue but as long as companies can see the above benefits they get the software vendors to port their software. It's happening. But to make it happen at a faster rate the upper level management needs to be involved. From what I have seen, the trend is that upper level managers (CIOs) are becoming more involved and open to the idea on a daily basis when they start getting hints that much of their critical operation is happening on Linux.