ah... così alla fine hai cambiato il nome dei checkbox... in questo caso non hai una collezione ma N checkbox con nomi diversi.
Se volevi mantenere il nome 'idfoto[]' potevi fare così
codice:
$progressivo = 0;
while($array = mysql_fetch_array($result))
{
echo"<td width=\"$cell_width%\" align=\"center\">
<a href=\"#\" onclick=\"var ck=document.modulo.elements['idfoto[]'][$progressivo];ck.checked=!ck.checked;return false\" title=\"fai click sull'immagine per selezionarla\">
<div class=\"imageBox\">
<div class=\"imageBox_foto\" style=\"background-image:url('../$array[nome_file]');\"></div>
<div style=\"float:right; text-align:right;margin-top: -22px; margin-right: 7px;z-index:1\"><input name=\"idfoto[]\" type=\"checkbox\" value=\"$array[idfoto]\"></div>
</div></a>
</td>";
$progressivo=$progressivo+1;
}
però in questo caso dovresti fare attenzione che nel ciclo ci siano almeno 2 elementi altrimenti l'indice da errore