msie в при загрузке скрипта изменяет readyState на loading->interactive->loaded. Если статус interactive пропущен - скрипт не загружен. В версии ie 8 и старше, если файл не существует, readyState остается loading.
function loadScripts(src,callback)
{
var script = document.createElement("script");
script.src = src;
script.ieCheck = false;
script.onreadystatechange = function()
{
if (this.readyState == 'interactive') this.ieCheck = true;
};
script.onload = script.onreadystatechange = function()
{
if ((!this.readyState || ((this.readyState == "loaded" || this.readyState == "complete") && this.ieCheck)))
{
script.onreadystatechange = script.onload = null;
callback();
}
};
document.getElementsByTagName("head")[0].appendChild(script);
}