Vamos por partes
Con esta línea:
document.links[0].href = ref;
... se cambia el href al primer link (etiqueta a)...
Si no sabes si hay más de un tag "a", puedes poner un atributo name y en vez de poner links[0] puedes poner:
para
<a name=unLink src=...
document.links.unLink.href = ...
Ahora para que no sea aleatorio, tan solo tienes que llevar un contador que se incremente en cada llamada...
<script language=javascript>
var dirs = [
"www.forosdelweb.com",
"www.sucaricatura.com",
"www.maestrosdelweb.com",
"www.desarrolloweb.com"
];
var cuenta = 0;
function slide() {
var ref = dirs[cuenta++ % dirs.length];
document.links[0].href = ref;
setTimeout("slide()", 5000);
}
</script>
Fíjate que cuenta está fuera de la función (en este caso método) y tiene valor 0.
En la linea:
var ref = dirs[cuenta++ % dirs.length];
el valor de cuenta se incrementa después de usarse, entonces la próxima vez valdrá 1.
Al hacer % dir.length, se divide por el número de elementos del array, pero nos quedamos con el módulo.
Bueno, tampoco voy a aburrirte con mucha teoría, pero poco a poco irás mejorando.
Saludos