Hola:
Prueba añadiendo un control sobre el campo length:
function validar(f, campo) {
var valida = false;
if (f[campo].length == undefined) valida = f[campo].checked
else for (var i = 0, total = f[campo].length; i < total; i ++)
valida = valida || f[campo][i].checked;
if (!valida) alert('debe seleccionar al menos un checkbox');
return valida;
}
Saludos