Back in the 90s, if you wanted to run Novell, UNIX, or Linux instead of WinNT Server, there was nobody stopping you and there were a lot of options. The same with Office suites: there were actual competitors to MS Office through most of the 90s. There is much less competition in many areas of commercial software today, and one of the primary reasons is that open source software has become a vehicle that large software companies use to drive competitors out of markets and solidify their positions in complementary markets. Yes, consumers benefit in the short term, but it allows these companies to build moats that make it very hard, or impossible, for future startup competitors to overcome. We all want to point our fingers at Oracle, MS, IBM, and say that they are the issue, but when every major player in the industry does the same thing, it starts to become more and more obvious that the problem may not be with the individual companies involved.
Also, public roads are a bad metaphor for software: there isn't a market for public roads, and software can always be innovated upon (as an aside, it drives me nuts when people declare something "solved", especially when the reason for doing so is ideological or political).