Для начала проверку на фреймы можно прописать покороче:

Код:
if (self == top) {
top.location.replace("index.html?нужная_страница.html")
}
Что же до index.html:

Код:
onload = "replaceIt()"
function replaceIt() {
top.имя_фрейма.location.replace(top.location.search.substring(1))
}
Иными словами: подавай адрес странички, которую нужно загрузить как параметр в командной строке (?нужная_страница.html).
Я сейчас сайт делаю со всеми этими фишками, чтобы ни одну страницу не показывать без ее "окружения" сверху и снизу.
У меня все работает.