Estoy de acuerdo con Casimiro, pero se que los usuarios no valoran la inversión en infraestructura si se puede "apañar" con parches aquí o allá.
Con respecto a un "capturador de excepciones", creo que puedes hacer esto en tu Formulario principal:
Código Delphi
[-]
...
private
procedure CapturaErrores(Sender: TObject; e: Exception);
...
procedure TFMPrincipal.FormCreate(Sender: TObject);
begin
...
Application.OnException := CapturaErrores;
...
end;
procedure TFMPrincipal.CapturaErrores(Sender: TObject; e: Exception);
begin
ShowMessage('Se ha producido un error no tratada. Se cerrará la aplicación');
ShowMessage('Exception class name = '+E.ClassName);
ShowMessage('Exception message = '+E.Message);
Close;
end;