Scusa ma... possibile che non ci sia una risposta ad un problema cosi banale? Io sono una schiappa in js ma credo non sia un grosso problema.
Ho fatto un bilico di tentativi all'interno della funzione compreso questo che mi sembrava il più ragionevole:

<script language="JavaScript" type="text/javascript">
<!--
function controlla_dati(){
// --- in pratica ne nessun campo qta[] esiste salta questo controllo su qta[] e controlla gli altri campi, se invece esiste assicurati che almeno uno sia compilato


if(document.richiesta.elements["qta[]"]['0'] != null)
{
//-------------- controllo che sia settato almeno un campo
var c=0;
for(var i=0;i<document.richiesta.elements["qta[]"].length; i++)
{
if(document.richiesta.elements["qta[]"][i].value != "") c++;
}

if(c<1){
alert("Inserire la quantità richiesta almeno per un articolo.");
return false;
}
}



var val_data=document.richiesta.data.value;
var val_nome=document.richiesta.nome.value;
var val_rs=document.richiesta.rs.value;
var val_ind=document.richiesta.ind.value;
var val_city=document.richiesta.city.value;
var val_cap=document.richiesta.cap.value;
var val_tel=document.richiesta.tel.value;
var val_email=document.richiesta.email.value;
if (val_data == "")
{
alert('Attenzione non è stata specificata nessuna data di consegna.');
document.richiesta.data.focus();
return false;
}
else if (val_nome == "")
{
alert('Attenzione inserire il nome e cognome.');
document.richiesta.nome.focus();
return false;
}

else if (val_ind == "")
{
alert('Attenzione manca il tuo indirizzo.');
document.richiesta.ind.focus();
return false;
}
else if (val_cap == "")
{
alert('Attenzione manca il C.A.P.');
document.richiesta.cap.focus();
return false;
}
else if (val_city == "")
{
alert('Attenzione manca la città.');
document.richiesta.city.focus();
return false;
}
else if (val_tel == "")
{
alert('Attenzione manca il numero di telefono.');
document.richiesta.tel.focus();
return false;
}
// -------------------------------------

Filtro = /^([a-zA-Z0-9_\.\-])+\@(([a-zA-Z0-9\-]{2,})+\.)+([a-zA-Z0-9]{2,})+$/;
if (Filtro.test(val_email))
return true;
else
{
alert("L'indirizzo e-mail inserito non è valido, controllare prego");
document.richiesta.email.focus();
return false;
}
// ----------------------------------------


}
//-->
</script>


Attualmente se il form contiene almeno un campo qta[] esegue a dovere il controllo ma se non esiste non mi controlla nessuno degli altri campi.