Sim, habilite o modo NO_ZERO_DATE:
SET sql_mode = 'NO_ZERO_DATE';
O comportamento está documentado . Além disso, você também pode querer definir o modo para incluir NO_ZERO_IN_DATE...
Verifique também se o sql_mode inclui STRICT_ALL_TABLES ou STRICT_TRANS_TABLES; sem estes NO_ZERO_IN_DATE apenas dá um aviso, mas a inserção ainda é bem-sucedida.
Colunas separadas significam que elas precisam ser verificadas individualmente - nada que você possa fazer sobre isso.