I'm expecting Linux to pan out like Firefox -- maxing out at around 20% desktop share made up mostly of tech savvy folks.
That works largely because
most web pages "just work" in all browsers, and the ones that don't can usually be easily fixed. On the other hand, if I have a large Windows application, porting it can be a LOT of work. Of course, if you start with cross-platform development in mind, it won't be as hard. You do have to ask, though, whether the cost of developing cross-platform is more than 25%, because if it's not, it may not be worth it for companies to support Linux (I'm also assuming the technically-inclined people using Linux don't pirate more software than their parents using Windows, which is unlikely IMHO... so I'm assuming you get 80% of the market for Windows only, and the other 20% of the market is a 25% increase). Even if they do, it's possible they'd half-ass it as some game companies do for PC versions of console games (producing behavior that just doesn't fit right, like popping up Windows-style open/save dialogs, interacting poorly with middle-mouse-paste, requiring elevated privileges or write access to the install directory, having [OK] [Cancel] vs. [Cancel] [OK] on dialogs, etc). That's just talking about big companies with real development teams.
The next problem is people who write their own little utilities. When my brother learned OpenGL, he put together a whole bunch of little 3d games (some of which weren't bad!). Since he's developing on Windows, he used Windows API calls - if I were on Linux and didn't have something like WINE (which some people here seem to say isn't necessary), I wouldn't be able to try them out. Sure, that's not a deal-breaker, but it adds trouble to the experience, and once some threshold is reached, I might switch back to Windows. Of course, there are more interesting things than games like that - I have yet to find a good Linux replacement for "Scanner"
here. When I do a quick & dirty script to automate some task, I'm just going to write for the OS I'm using, and I'm likely to make certain assumptions if it saves me time (e.g. "\" is the directory separator), so nobody on other platforms could use it.
The problem there is that there are some situations in which some type of monopoly actually makes sense. Being able to go to the store and buy any application I see, knowing it supports my OS, is important. Let's say we're at the 80/20 point, and some kid installs Linux on their parent's PC. Let's also assume 75% of software supports Linux well (I think that's optimistic). At some point, the parents are going to want some application (the latest tax software or some 3d home renovation preview application) that falls into the 25% that don't work, and they'll be unhappy. They'll tell their coworkers about their troubles.