Es muy fácil. Tienes que usar el evento OnDrawColumnCell del DBGrid. Este evento se generará cada vez que el control necesite dibujar una celda pasándote como parámetro la columna sobre la que está la celda. Sólo tienes que verificar las condiciones del registro actual y cambiar el color del canvas si se cumple la condición y dejar que continúe el proceso normal de dibujado.
Aquí un ejemplo:
Código Delphi
[-]
procedure TForm1.DBGrid1DrawColumnCell(...);
begin
if FechaVencida and (gdSelected in State) then
DBGrid1.Canvas.Font.Color := clRed;
DBGrid1.DefaultDrawColumnCell(Rect, DataCol, Column, State);
end;
Aquí las filas con fechas vencidas aparecerán con letra de color rojo aunque me parece que también puedes usar
DBGrid1.Canvas.Brush.Color := clRed;
para que sea el fondo de la fila el que aparece en rojo.
La condición (gdSelected in State) no es necesaria pero yo la uso porque se me hace un poco confuso que la fila seleccionada también aparezca en otro color ya que entonces no sé si está seleccionada.
Si desearas colorear únicamente la celda (y no toda la fila) con el campo fecha podrías añadir la condición de que la columna coincida con el campo, algo como:
Código Delphi
[-]
if (Column.FieldName = 'fechavencida') then
...
// Saludos