Bene bene, ho sfrondato di molto il codice e ho creato un codice di compatibilità sicuramente compatibile con i vecchi browsers, IE compreso! Ovviamente ci sono meno funzionalità, ma si tratta di poca cosa. L'unica differenza è che non si potrà accedere, eliminare o impostare una chiave con l metodi localStorage.tuaChiave, delete localStorage.tuaChiave, localStorage.tuaChiave = tuoValore, si dovranno per forza utilizzare i metodi localStorage.getItem("tuaChiave"), localStorage.removeItem("tuaChiave") e localStorage.setItem("tuaChiave", "tuoValore"). Il metodo localStorage.hasOwnProperty("tuaChiave") è stato invece correttamente implementato. Chi si fa avanti con un test? Questo deve per forza funzionare!!!!! Basta aprire con una vecchia versione di IE la pagina che incollo qui…

codice:
<!doctype html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<title>Test</title>
<script type="text/javascript">
if (!window.localStorage) {
	window.localStorage = {
		getItem: function (sKey) {
			for (var aCookies = document.cookie.split(/;\s*/), iIdx = 0; iIdx < aCookies.length; iIdx++) {
				if (aCookies[iIdx].indexOf(escape(sKey) + "=")) { continue; }
				return unescape(aCookies[iIdx].slice(aCookies[iIdx].indexOf("=") + 1));
			}
			return null;
		},
		key: function (nKeyId) { return unescape(document.cookie.replace(/\=(?:.(?!;))*$/, "").split(/\=(?:.(?!;))*.;\s*/)[nKeyId]); },
		setItem: function (sKey, sValue) {
			if(!sKey) { return; }
			document.cookie = escape(sKey) + "=" + escape(sValue) + "; path=/";
		},
		removeItem: function (sKey) {
			if(!sKey) { return; }
			var sExpDate = new Date();
			sExpDate.setDate(sExpDate.getDate() - 1);
			document.cookie = escape(sKey) + "=; expires=" + sExpDate.toGMTString() + "; path=/";
		},
		hasOwnProperty: function (sKey) { return (new RegExp("(?:^|;\\s*)" + escape(sKey).replace(/[\-\.\+\*]/g, "\\$&") + "\\=")).test(document.cookie); }
	};
	// Object.freeze(localStorage);
}

localStorage.setItem("testChiave", "Funziona alla perfezione!!!");
alert(localStorage.getItem("testChiave"));

</script>
</head>
<body></body>
</html>
Come di consueto, il codice è stato postato anche qua: https://developer.mozilla.org/en/DOM..._compatibility.
P.S. Questa volta il codice è persino più esiguo delle funzioni che generalmente si trovano in rete per manipolare i cookies