A função CURDATE não funciona corretamente para a adição de dias que extrapolam o calendário. Como exemplo, a instrução a seguir retornar uma data inexistente:
// acrescentando 120 dias a data atual
> SELECT CURDATE()+120;
> 20071325
Para resolver isso é usada uma outra função chamada DATE_ADD, responsável pela soma correta de dias em uma determinada data:
// acrescentando 120 dias a data atual
> SELECT DATE_ADD(CURDATE(), INTERVAL 120 DAY);
> 2008-04-03
O mesmo pode ser feito para subtrair dias de uma data com a função DATE_SUB.
Fonte: http://codare.net/2008/02/01/mysql-somando-datas-corretamente-com-curdate/