If you modified the Object.prototype or Array.prototype (which was common at the type with libraries like PrototypeJS) and used a rehydration function with JSON.parse, the runtime would throw an error you couldn't catch, and stop JS functioning. In IE 8.x ... almost worse, the JSON.parse function was locked... I wound up using a wrapper JSON.parse2 or something that was the JSON library edited to attach to parse2 for IE8, other browsers would alias parse as parse2.
I then used the parse2 in everything at that time. In the end, it sucked and I'm glad I don't have to do it anymore. IE8's quirks were what I would consider the last bad version of IE... since then it's been mostly okay on release, but ages rapidly, but enough turnover that you aren't on it too long. Until current IE11 as it's tied to windows releases, and some people/orgs didn't upgrade.