se non gli passi le altre date e' normale che ti tornino i 2 trattrini, poi mysql prova a inserire il valore ma invece di una data si ritrova '--'
quindi prima di fare l'operazione di insert (o update controlla che siano valorizzati) $_POST['data_corso_2'], $_POST['data_corso_3'], $_POST['data_corso_4']

prova a fare cosi

if ($_POST['data_corso_2'])
{
$parti_2 = explode('-', $_POST['data_corso_2']);
$data_corso_2 = $parti_2[2].'-'.$parti_2[1].'-'.$parti_2[0];
}