Lo tienes casi perfecto.
en la asignación de la fecha debe ser con NOW(), no es LANGUAJE sino LANGUAGE, las comillas del mensaje de error deben ser comillas simples y no dobles y por ultimo, no es CAST sino COST. (Aunque esta la puedes omitir.)
Código SQL:
Ver originalCREATE OR REPLACE FUNCTION ins_clientes() RETURNS TRIGGER AS $BODY$
BEGIN
NEW.nombre := UPPER(NEW.nombre);
NEW.giro := UPPER(NEW.giro);
IF NEW.tel_fono <= 0 THEN
raise exception 'telefono menor que cero';
END IF;
NEW.fecha_ingreso := NOW();
RETURN NEW;
END;
$BODY$
LANGUAGE 'plpgsql' VOLATILE;
saludos