Windows, al igual que MS-DOS antes que él, consiguió alcanzar un punto óptimo de funcionalidad y precio (del hardware en el que funcionaba) en el momento en que los ordenadores se convirtieron en la corriente principal. Las máquinas aún más baratas de Commodore, Atari y similares no eran lo suficientemente funcionales para la mayoría de la gente. En particular, no soportaban el tipo de aplicaciones que la gente quería. El Macintosh era mejor en este sentido, pero seguía siendo más caro y con menos periféricos (también más caros) disponibles. Lo mismo ocurría con el Amiga, comparado con ambos. Aun así, fue una verdadera lucha durante un tiempo. Microsoft demostró que "más barato y lo suficientemente bueno" superaba a "mejor" en el mercado de los ordenadores, de forma similar a lo que Toyota y otros (que no eran marcas de primera calidad en ese momento) estaban haciendo en el mercado del automóvil.
UNIX en ese momento tenía una combinación diferente de problemas, en lo que respecta al mercado. Existían máquinas UNIX mucho mejores, pero eran astronómicamente caras, por lo que ni siquiera eran un factor en el mercado de masas. Existían varios puertos para PC, pero eran una auténtica porquería. Incluso si pudieras conseguir controladores para tu tarjeta de vídeo, estarías atascado con X y un gestor de ventanas aún más primitivo que el que tenía Windows. Configurar el audio o el módem (que es lo que la mayoría de la gente tenía en ese momento) era igualmente doloroso. Configurar una impresora era peor. ¿Y las aplicaciones? Olvídalo. Para un programador como yo todo esto podría haber estado bien, pero era un completo no-go para la gente normal.
Cuando la mayoría de la gente (en los EE.UU. por lo menos) estaba consiguiendo su primer ordenador, Windows en un PC basado en x86 era más barato que MacOS (antes de OSX) en 68K/PowerPC. A efectos prácticos, era igual de bueno y no había otros competidores efectivos. Y han estado ordeñando esa vaca lechera desde entonces.
EDIT: mi mujer, que era más partidaria de Windows en aquella época de lo que yo lo he sido nunca, sacó a relucir un par de puntos adicionales. En primer lugar, la compatibilidad con MS-DOS era muy importante. La mayoría de las aplicaciones de MS-DOS podían ejecutarse en una caja de compatibilidad de Windows. Para las que no podían, se podía reiniciar en MS-DOS y no iniciar Windows. Esto era una ventaja incluso en comparación con OS/2, que se ejecutaba en (casi) el mismo hardware pero utilizaba un sistema de archivos diferente y a menudo era lo suficientemente diferente en otros aspectos como para frustrar este tipo de cambio casual. Eso, sumado a la gestión no tan estelar de IBM de OS/2 desde el punto de vista empresarial, impidió que se hiciera un hueco importante.