One of the big differences between penguinistas and commercial software users it that penguinistas read the license (and either follow the rules or use something else). Microsoft has a long history of open source. The first open license I remember from Microsoft said something like "If one of your developers could have glimpsed this source code we can sue you for copyright infringement". They have progressed through stages with licenses like "If you use the source code, we can sue you for patent infringement" and "You can distribute something compatible with our documentation, but it won't be compatible with our software. If you distribute something compatible with our software, we can sue you".
.NET has been shared source since 2007, but the license was the Microsoft Reference License. That was enough to convince plenty of penguinistas not to take an interest in .NET, and to take care that they did not rely on it for anything that mattered (or anything at all, depending on their level of caution/paranoia). The new .NET license is an MIT variant.
The MIT/BSD licenses are an excellent choice for academic institutions with government funding. The license includes a requirement to retain attribution of where the source code came from, but has few other restrictions. The chances are you can use MIT licensed software in your commercial or open project with minimal inconvenience (read the licenses and check, because there are variations). The author of the software can then point at all the places her software is used as evidence that the grant money was used effectively.
An MIT variant is not the GPL, and there are good and bad reasons for using it. For example libgcc is required by any software compiled with gcc. If libgcc were only GPL, it would not be legal to distribute closed source software compiled with gcc (the actual license is GPL plus some exemptions for distributing close source binaries). For parts of .NET, an MIT variant is an excellent choice for a language intended for both open and closed projects. The down side of the license is what happens when third parties contribute improvements. If the improvements have the same license Microsoft can include them in a closed source variant of .NET, say .NET++. The next step would be to create reasons why people need to buy .NET++ instead of using open.NET. Microsoft have repeatedly demonstrated their outstanding ability to find the smallest difference required to make an expensive upgrade essential to the bulk of their users. This is sufficient reason for a hefty chunk of developers to pick different project to contribute to, and will slow the progress of .NET.
The MIT variant license is a very small sting in the tail. Like many penguinistas and closed source software distributors, I use many pieces of BSD/MIT licensed software. With this change of license in progress, my reason for not using .NET is because I no experience with it, and plenty of experience with its competitors that have been open for a long time. If a useful piece or .NET software turns up, instead of running away screaming as I would have done last year, I will read the license and then take a decision.
Sun went through a similar period of change with some of its executives understanding how to benefit from free software licenses and others holding them back. There was a sequence of license changes, each better than the last, but with obvious reasons to convince third party developers to take no interest. Sun's profits plummeted and they were bought by Oracle. I can understand Microsoft taking their time to get it right rather than rushing into a broken compromise. Given their history, Microsoft will have to deal with the fact that penguinistas will search any gift-horse dilligently for the slightest possible hint of a way for Microsoft to exploit lock-in.