Deberías usar siempre "comillas" para ese caso, dá igual si es un texto (dato alfanumérico) o numérico sólo .. (igual funciona y te olvidas del problema para siempre).
Código PHP:
$sql="UPDATE alumnos SET calificacion='".$cali."',faltas='".$faltas."',faltas_justi='".$faltas_justi."',faltas_to='".$faltas_to."' Where ID='".$id."'";
Tampoco está de más usar "mysql_real_escape_string()" para evitar problemas de SQL (inyección) y similares:
Código PHP:
$sql="UPDATE alumnos SET calificacion='".mysql_real_escape_string($cali)."',faltas='".$faltas."',faltas_justi='".$faltas_justi."',faltas_to='".$faltas_to."' Where ID='".$id."'";
(así con todos los campos y variabels que toquen una consulta SQL).
Un saludo,