This may be a dumb question...but I was just looking into the Mono project and they have a section about installing Mono on Windows. But, since Windows obviously already ha
I think the main reason they did this is so they can run .NET applications on Mono and .NET side-by-side to compare them. Also, there are a few applications that depend on Mono libraries.
While not of widespread interest, there are a few cases where mono has improvements over the standard Microsoft runtime. Migel gave a talk on some of these at PDC this year:
See these posts:
Because Mono Doesn't implement .Net 100% the same as the MS .Net Framework, it's good that you can test out on Mono without having to run on Linux. Also Mono has bindings to make forms with GTK which MS doesn't support.
Keeping You from Getting Tangled in a Net!
To add to numerous reasons mentioned in other answers, Mono for Windows may be required to be installed on Wine to allow running .Net applications inside Wine.
From Mono's technical FAQ:
Why support Windows, when you can run the real thing?
There are various reasons:
Supporting Windows helps us identify the portable portions of Mono from the non-portable versions of it, helping Mono become more portable in the future.
It assists us since we can isolate problems in Mono by partitioning the problem (is it a runtime issue, or an OS issue?).
About half the contributors to Mono are Windows developers. They have many different reasons for contributing to the effort, and we find it very important to let those developers run the runtime on Windows without forcing them to use a new operating system.
Mono does not heavily modify the windows registry, update system DLLs, install DLLs to the Windows/System32 path.
It helps Windows-based developers to test their code under Mono before they deploy into Linux.
Mono and applications that embed Mono can be deployed without an installer (you can "xcopy" deploy your application and the required Mono files without installing the .NET runtime).