Having worked in the IT business for seemingly forever, allow me a generalization here. There are basically two kinds of people in the programming profession. Those who can and those who cannot. Those who can are typically strong mathematically, highly conscious of minute details (analytical), and are less prone to be concerned about big picture areas like business strategy etc. Many people who cannot program well are gifted with better interpersonal skillsets and through increased dialogue create opportunities to devise new solutions (out of the box).
These differences are why I think it is easy to say but not easily done when you tell a person who is a world class programmer that they need to develop more business skills.
There's a lot of truth to what you say. I know an engineer that actually talks like a computer, I'm not kidding either.
Nobody is going to get this guy to "think outside the box". He's not programmed for it.
Then how about American programmers joining together, to control and market what you have that other nations do not, innovation. Put a huge and hefty price tag on it that runs into the millions.