The stack trace should be available to the user when the application crashes, because a stack trace usually identifies the bug that causes the crash, and there might be a work around available. The work-around obviously works only if the crash is caused by the bug the work-around is for - otherwise attempting the work-around is just wasted time.
A crash might also be caused by a bug in something that the user needs to update, e.g. graphics driver. In this case, the stack trace usually contains the name of the graphics driver, such as atiumdag.dll.
Let's imagine:
No stack trace:
Customer: I get a message box saying "the program stopped working".
Support: Try this.
Customer: Nope, doesn't help.
Support: Try this.
Customer: Nope, doesn't help.
Support: Try this.
Customer: Nope, doesn't help.
Support: Try this.
Customer: Nope, doesn't help.
With stack trace:
Customer: I get a message box saying "the program stopped working".
Support: Click on the "details" button and send me the stack trace.
Customer: (sends the stack trace)
Support: This is caused by a known bug in the application, which is triggered by feature X when the application is installed in a non-default path. It will be fixed in the next version, which is released next year. However, you can work around it by either disabling feature X or re-installing the application in the default installation path.