Oui et non ; en soi, c'est pas IE qui casse les pieds, c'est effectivement le fait que les utilisateurs et les clients ne soient pas à jour. Le reproche que je fais à Microsoft, c'est de ne pas forcer ces mises à jour au maximum (mais même comme ça, le nombre de gens qui désactivent les maj de leur PC sont légions). Et si ça embête beaucoup de webmaster, c'est souvent une question de compétences, de connaissance, et de conception. Ce sont des choses qui ne s'improvisent pas : Quand on doit coder pour un vieux navigateur (que ce soit IE ou Firefox, d'ailleurs. Je suis déjà tombé sur des clients qui étaient encore en Firefox 2), on ne s'occupe pas d'abord du récent pour chercher ensuite comment faire pour rendre le neuf compatible avec du vieux : Ça ne marchera juste jamais.
Mon analogie préférée pour ça : Quand le client a un lecteur VHS, on ne lui livre pas un Blu-ray. On peut remettre en cause le fait qu'il utilise encore un lecteur VHS, on peut en discuter avec, tenter de le convaincre du besoin de se mettre à jour, mais le seul à blâmer le jour de la livraison si ce n'est pas compatible, c'est celui qui a gravé son Blu-ray et qui tente désespérément de le faire lire à un lecteur VHS devant le client.
Pour un même résultat, on ne code pas de la même façon en fonction de son besoin. Si on doit coder pour IE9 mini, IE8 mini ou IE7 mini, on le prévoit à l'avance, et ainsi on évite tout problème.
Pas de prise en charge de border-radius, text-shadow et box-shadow, c'est franchement pas grave ; si ça l'est et que ça empêche la lecture ou la navigation, c'est qu'il faut impérativement revoir le design, en dehors de toute question de navigateur et de CSS. Pour tout ce qui est mise en boite, float marche depuis longtemps. Pour inline-block, y a un palliatif simple sous IE7 (zoom), et ça marche sous IE8. Pour tout une majorité des autres bugs, c'est souvent juste une question de connaissance et de compréhension ; hasLayout, je l'ai expliqué je ne sais pas combien de fois, même à des professionnels.
Le seul soucis que je rencontre en général, c'est le support de :after/:before quand je dois rendre un site compatible IE7 (ça marche dès IE8). Et encore, c'est un problème de conception : Quand je sais que je dois rendre un site compatible IE7, je n'utilise pas de pseudo-élément et je les ajoute directement au markup. Si je dois reprendre un site sensé être compatible IE7 qui a ce genre de problème, je dis juste au client de me laisser faire la prochaine fois, parce que si son intégrateur mets des before/after en sachant qu'il doit être compatible IE7, c'est qu'il n'est pas au point, tout simplement. Je n'ai jamais rencontré de problème insurmontable à ce niveau.
Tout ça, en sachant que je milite toujours pour que les gens mettent leur navigateur à jour (parce qu'ils n'ont vraiment aucune excuse pour ne pas le faire) et que pour les clients, je passe toujours du temps à leur expliquer l'importance d'être à la page. Malgré ça malheureusement, y a toujours des cas où on ne peut rien faire. Et là, c'est à nous de bosser en conséquence et dans le bon ordre.
Là où ça m'énerve, par contre, c'est quand la dernière version de Firefox ne gère toujours pas le positionnement dans une cellule de tableau, alors que ça fait plus de 10 ans que ce bug est signalé ; un ami a le même soucis avec line-height dans les input. C'est aussi quand la dernière version de Chrome prétend toujours gérer les nouvelles valeurs de background-position pour gagner des points dans les testeurs en ligne (html5test.com), alors que ce n'est toujours pas le cas en réalité. Là oui, les mauvaises gestion de propriétés dans des navigateurs modernes (IE compris), ça me pose problème.