...

try
{
   boost::filesystem::path tmp_dir ("tmp", boost::filesystem::native);
   boost::filesystem::remove_all (tmp_dir);
   std::string tmp_path (tmp_dir.string().c_str());
}
catch (boost::filesystem::filesystem_error & e)
{
   std::cerr << "boost filesystem exception thrown!" << std::endl;
   exit (1);
}
catch (...)
{
   std::cerr << "Exception thrown!" << std::endl;
   exit (1);
}

No exceptions thrown. The tmp_path constructor fails with an access violation where the pointer tmp_dir.m_path._Bx is a bad pointer.  I would expect an exception from both the path constructor and the remove_all call, but they silently fail.

I can change the construction code to look like the following an it does not affect the situation in any way:

   boost::filesystem::path env_path;
   env_path /= "tmp";
Is this v1.33.0 or v1.33.1? Have you tried: catch ( const std::exception& e)?
 
What compiler? version? ...

Can you supply a complete minimal source code example that demonstrates the problem?
 
Jeff Flinn