perché la collezione esiste solo se gli elementi sono più di uno
ti basta controllare se ci sono più elementi fai il ciclo altrimenti guardi il singolo elemento
codice:
function CheckAll(formname,checkid,thestate)
{
var el_collection=eval(\"document.forms.\"+formname+\".\"+checkid)
if(el_collection.length){
  for (c=0;c<el_collection.length;c++)
  {
    el_collection[c].checked=thestate
  }
}
else{
  el_collection.checked=thestate
}
}