Windows, come MS-DOS prima di lui, è riuscito a colpire un punto dolce di funzionalità e prezzo (dell'hardware su cui girava) nel momento in cui i computer sono diventati mainstream. Le macchine ancora più economiche di Commodore, Atari e simili non erano abbastanza funzionali per la maggior parte delle persone. In particolare, non supportavano il tipo di applicazioni che la gente voleva. Il Macintosh era migliore in questo senso, ma ancora più costoso e con meno periferiche (anche più costose) disponibili. Idem per l'Amiga, rispetto a entrambi. Comunque, fu una vera lotta per un po'. Microsoft ha praticamente dimostrato che "meno costoso e abbastanza buono" ha battuto "migliore" nel mercato dei computer, in modo simile a quello che Toyota e altri (che all'epoca non erano marchi premium) stavano facendo nel mercato dell'auto.
UNIX all'epoca aveva una diversa combinazione di problemi, in termini di mercato. Esistevano certamente macchine UNIX molto migliori, ma erano astronomicamente costose, quindi non erano nemmeno un fattore nel mercato di massa. Esistevano varie porte per PC, ma facevano decisamente schifo. Anche se potevi ottenere i driver per la tua scheda video, saresti rimasto bloccato con X e un window manager ancora più primitivo di quello che aveva Windows. Impostare l'audio o un modem (che è quello che la maggior parte della gente aveva all'epoca) era ugualmente doloroso. Impostare una stampante era peggio. E le applicazioni? Dimenticatele. Per un programmatore come me tutto questo poteva andare bene, ma per la gente normale era semplicemente un no-go totale.
Quando la maggior parte delle persone (almeno negli Stati Uniti) stavano acquistando il loro primo computer, Windows su un PC basato su x86 era più economico di MacOS (prima di OSX) su 68K/PowerPC. Per tutti gli scopi pratici era altrettanto buono, e non c'erano altri concorrenti efficaci. E da allora hanno continuato a mungere quella vacca da mungere.
EDIT: mia moglie, che all'epoca era una persona Windows più di quanto lo sia mai stato io, ha sollevato un paio di punti aggiuntivi. Primo, la compatibilità con MS-DOS era molto importante. La maggior parte delle applicazioni MS-DOS potevano essere eseguite all'interno di un box di compatibilità Windows. Per quelle che non potevano, si poteva riavviare in MS-DOS e non avviare Windows. Questo era un vantaggio anche rispetto a OS/2, che girava su (quasi) lo stesso hardware ma usava un diverso filesystem ed era spesso abbastanza diverso in altri modi da ostacolare questo tipo di passaggio casuale. Questo, più la gestione non proprio stellare di OS/2 da parte di IBM, gli impedì di farsi notare seriamente.