The problem is a lot of Ruby/JS/dynamictypedlanguage hipsters these days who shout so loudly about IE having poor standards support weren't actually around at the time. Everyone loved IE back in those days as it was modern and every release had new exciting features in it (both for users and developers).
The fact that IE got some things "wrong" with CSS and had bugs like transparent PNGs not rendering, er, transparently... were just necessary growing pains. This didn't matter in the wild west days of the web as, well, PNGs weren't even that popular back then and CSS was still something web developers were getting to grips with, slowly.
Compare IE4-6 not to later-generation browsers, but to its direct rivals of the day which was Netscape and Opera and not really much else. Compared to these, IE was king.
The real problem was that Microsoft stopped browser development for half a dozen years, and that put it miles behind. The rapid releases from IE8 to IE11 show Microsoft trying to catch up, ie being pretty good at adopting standards.
There are plenty of things to blame, including the US Justice Department, the unexpected delay from the Longhorn disaster, and the backlash against Vista. This left XP dominating the PC market, and XP shipped with IE6.
If that's been holding up the web, it's not because Microsoft willed it. Just the reverse: it's being trying for years to kill it off.
Speaking of innovation it is true that IE was terrible in adopting standards (this was pain for long, long years and costed tones of money), but, on the other hand, they have invented XMLHttpRequest, which opened doors to modern web applications development.