ho risolto, in parte...

in verità, non vi avevo detto che la cancellazione di un piatto è condizionata dalle "date degli eventi":
nella tabella MENU c'è un campo "dataEvento" che indica appunto una data.
Il controllo php segue questa logica:
"se il piatto da cancellare è presente in MENU e dataEvento di MENU è > della data corrente allora non cancellare il piatto".

Ora che succede:
se metto come data dell'evento un qualsiasi giorno del 2112 l'applicazione funziona male, mentre se metto una data + vicina (tipo 2012) l'applicazione funziona bene!

La data viene memorizzata nel DB come varchar (es. 13/10/2011).
Questo è il codice che controlla le 2 date:

$data_corrente = date("d/m/Y");
list($d, $m, $y) = explode('/', $data_corrente);
$data1 = mktime(0, 0, 0, $m, $d, $y);
...
...
...
list($gg, $mm, $aaaa) = explode("/", $dataEvento);
$data2 = mktime(0, 0, 0, $mm, $gg, $aaaa);
if($data1<$data2){
...
...
...