Феникс прав в своем предположении. В свое время тоже на эти грабли наступил. Несмотря на то что Date типа TDate, время там все равно присутствует. Т.к. в дробную часть записывается время, а оно вам как-раз не нужнео можно сделать так:
Код:
if Round(DateTimePicker2.Date)<=Round(DateTimePicker1.Date) then
begin
Showmessage('Дата окончания введена неверно!');
Exit;
end;