The deployment element in machine.config defines settings used to support deployment. The retail attribute can be set only at the machine level, not at the application level:
<deployment retail="true|false" />
You use it in machine.config as follows:
The default value of the retail attribute is false. When you set the attribute to true, ASP.NET disables other configuration settings. Specifically, when retail is true, ASP.NET forces the debug flag in the web.config file to be false, disables page output tracing, and shows remote users a custom error page rather than the actual exception or error message.
Setting this switch to true is probably a best practice to follow in production to ensure that an application always runs with the best possible performance and doesn't leak security information in error messages.