> yet MS still pushed ahead with IE-specific language features
Yeah, they all did though.
I was doing frontend dev back then, if we can call it that, it was web development with some JS actually or DHTML for those who remember.
Scripting elements was very limited at the beginning, you couldn't access the entire DOM, only forms and images, if I remember correctly, and maybe the decoration of links, that's how the hover behaviour was born.
The story is quite more nuanced, there's also the fact that IE was actually a better browser than Netscape after the Netscape 4 fiasco (I was a paying customer of Netscape 3 gold and Netscape 4)
Netscape tried the non-standard layer element accessible through document.layers (all the layout was done with tables back then, so this looked like an improvement) but didn't catch up.
IE 4 had a lot more features, it introduced document.all to access the entire DOM by ID, documents.forms, document.images, document.all.tags() that allowed the access to all tags by tag name, it introduced innerHTML, outerHTML, innerText and outerText properties.
It's easy to understand why developers switched to IE, given also that Windows was the primary platform that users used to browse the web (do we still use the browse verb?) and IE4 was available on the Mac too. IE5 introduced the XMLHttpRequest object so AJAX was born (IE 5 on Mac was even more advanced than the one on Windows)
And yes, MS abused of their dominant position with IE6, but that doesn't invalidate the fact that they actually innovated in the field, before abusing of it.
EDIT: it wasn't called XmlHttpRequest on IE, you had to instantiate an Activex Object (COM component) the MSXML2.XMLHttp. Forefox came up with the XmlHttpRequest name later (XML was still going strong at the time). You could actually instantiate any Activex component available on the client machine from IE >= 5, even Word if you wanted to.
I remember developing intranets for Windows networks where we used Word automation from the browser using Activex.
To think about it now it was a terrible idea, but it looked like a miracle back then. You could instantiate the ADODB COM component and run queries from the browser to the SQL server.