Я делал немного проще...
var head=document.documentElement.firstChild; // Есть и другие варианты получить head. Кому как удобнее.
// Подключаем скрип
var js=document.createElement('script');
js.type='text/javascript';
js.src='script.js';
head.appendChild(js);
//Подключаем стили (так... до кучи...)
var css=document.createElement('link');
css.href='style.css';
css.media='screen'; //all, print ect.
css.rel='stylesheet';
css.type='text/css';
head.appendChild(css);
Работает везде, где нада (не придерацца к мелочам!!).
Проверить загрузился ли скрипт нужно вариантом с callback имхо.
Более точно проверять можно при использовании аякс. Получили в xml, распарсили, вставили(как вариант).