Se le immagini sono nella stessa directory del file html prova a modificare come segue:
codice:
var onsrc = "./image1.gif";
var offsrc = "./image2.gif";
Inoltre metti un alert (caro vecchio debugger...):
codice:
var pos = newSrc.indexOf('image1'); 
alert(pos);
credo che il problema sia nell'assegnazione temporale dell'attributo src da parte di IE.
Per evitare puoi mettere un multiswitch all'interno dei comandi condizionali.

es:
codice:
function cambiaIMG(id)  {
var onsrc = "image1.gif";
var offsrc = "image2.gif";
var newSrc = document.getElementById('idimg'+id).src;
var pos = newSrc.indexOf('image1');

var elToChange=document.getElementById('idimg'+id);

     if(elToChange.actualImg==1){
          elToChange.src = onsrc;
          elToChange.actualImg=1
     } else {
          elToChange.src = offsrc;
          elToChange.actualImg=2
     }
}
ovviamte devi preimpostare la proprietà personalizzata actualImg per ogni immagine.