A questo punto e` chiaro: non dai tempo di caricare l'immagine.

Prova cosi`:
<input class="inputBox" type="file" size=50 name="foto1" onchange="preview(this, 'swap1');">
...
<input class="inputBox" type="file" size=50 name="foto2" onchange="preview(this, 'swap2');">

codice:
var Imm = new Image();

function preview(cc,dest) {
  //Imm.src = "logo-iniziale.gif"; // a che serve??
  var str = cc.value;
  Imm.src = str;
  Imm.onload = preview_2;  // senza parentesi!!
  document.getElementById(dest).src = str;
  return;
}

function preview_2() {
  var w = Imm.width;
  var h = Imm.height;
  alert("Le dimensioni attuali sono di " + w +" x " + h + "pixel");
  return true;
}
Servono due funzioni perche` in una fai partire il caricamento, nell'altra leggi le dimensioni.

Invece puoi chiamare la stessa funzine con parametri diversi per i due input.

Ho modificato un pelo i nomi, per evitare nomi simili per oggetti strutturalmente diversi (per chiarezza di noi umani).