This solution uses jQuery and will not work on sites that don't already have jQuery loaded. If your site is run by a CMS such as Wordpress or eCommerce solution like Miva Merchant, chances are jQuery is already being used.
The solution: hide the unstyled content until it's ready to be displayed.
The example below uses CSS to force the left menu display to none when the page loads based on the .left-menu class.
// this one has a delay built in, just for example
Here's the full demo page with the same code that you'll see by clicking on the demo link above:
padding: 0 10px 0 10px;
border-left: 1px solid orange;
<;h3>Menu: 2 second delay</h3>
<h3>Menu Displays When Ready</h3>
The script below pauses for two seconds before the menu will be shown.
In my case, it was a jQuery tree plugin (easytree.js) that was flashing content. The initializing function call is easytree() and the content flash was solved like this: