One of my favorite books depicts a southern farmer who boasts how his animals do all the work (maintaining the grass by eating it, etc, etc.) Wouldn't it be great if we, as web programmers, could let our users do the testing?
This dream scenario, of course, works best on public beta sites, but it has application on live/production websites as well.
The concept here is called a Global Error Handler. Some languages support it natively. For others, you'll have to include it in a global include file of some kind.
Essentially, this error handler either stores user-generated errors to database, or emails the information to your development team. I prefer the latter, as it forces you to keep tabs on the errors.
ColdFusion offer's "native" support for this via it's Application.cfc onError function. An example below demonstrates how to include relevant error information in your email:
<cffunction name="onError" returnType="void" output="true">
<cfargument name="Exception" required="true">
<cfargument name="EventName" type="string" required="true">
<h2>An unexpected error occurred.</h2>
<p>Please provide the following information to technical support:</p>
<p>Error Event: #Arguments.EventName#</p>
Redirect URL: <cfoutput>#CGI.REDIRECT_URL#</cfoutput>
<cfmail ... type="text/html">