Not often do I have to explain to customers about Cross Platform and .NET, even when Eric Rudder spent 2 days in Israel last week he was asked about Microsoft's position regarding mono.
Personally I love the idea that someone is taking the specification and really proves that it can be done outside Microsoft. Practically I think it's a lost battle. I really can't imagine anyone that could keep up with the guys in redmond. Why is that? when I think of the reasons, I came up with 1 that has nothing to do with .NET. It's Windows itself that is the key to the power of .NET.
While reading http://www.devx.com/dotnet/Article/21872 about the how portable ASP.NET is most of the article really discusses really really simple scenarios. Real world application in the enterprise level cannot live using such basic and poor support for cross platform.
For instance take the System.Transaction namespace in .NET 2.0 or the Enterprise Services as we know it today, they are a key thing for every large scale application. Juval Lowe while speaking in Teched Israel did a great session on Enterprise Services said at the beginning of his talk that if you are not using Enterprise Services you are writing a toy. Many attendees disagreed loudly, but 30 min later most of them agreed that they simply didn't know enough about it.
This brings me to a key point in my argument, showing poor sample of porting does not mean it is portable. Someone who is new to .NET could easly be misled by such articles and put all his eggs on the mono basket relying to the power of windows where it doesn't exist.
.NET is powerful because it's windows under the hood.