Method 1: The Built-In Script from Adobe
File >> Scripts >> Export layers to files...
Here are some related questions...
Exporting individual layers in Photoshop, keeping their sizes
Export Layers to Files exports only 4 png files from 100 layers
Method 2: Custom Script
I spent some time and wrote my own script file to automate this process.
This process is much faster than the built-in script mentioned above.
Special thanks to escalation746 for doing some clean-up work on my script (it was really bad).
I ran this script on a 100 layer, 450MB file in under 60 seconds. Running the built-in script on the same file takes me about 30 minutes.
When testing with nest layer groups, I found that my script runs in about 90 seconds whereas the built-in script takes about 27 minutes (and actually exports it wrong).
Please note that these results will vary depending on the complexities of the files as well as the hardware on your computer. It also wouldn't surprise me if it varied between versions of Photoshop.
Please let me know if you run into any issues with the script. My contact info may be found here.
Instructions for use:
File -> Scripts -> Browse... (then find the script).
Here are screenshots to help if you need additional help.
IMPORTANT: The images will automatically be saved in whatever directory your multi-layer file is contained in! Feel free to make any adjustments to the script as needed.
Disclaimer: Please use script at your own risk. I have not tested it thoroughly enough to guarantee that it is in fact bulletproof.