When should I use a Content Management System, and when should I use a web-framework?
Content Management Solutions (CMS) are platforms you can install on your web server that allow you to choose or create a theme and begin adding content to your website. CMS solutions are great for blogs, news sites, and basic corporate or informational websites where the intent is to have pages with mostly text, links and images on them. For example Wordpress and Drupal are CMS platforms (Wordpress started off as a Blog platforms and has evolved into a CMS). Also, some CMS solutions are more advanced and can do advanced websites they tend to be more specific and/or cost money.
In addition to basic text, links and images, most CMS solutions allow for additional plugins that allow Web 2.0 items to be embedded in the content area of a page or in the menu or sidebar. By Web 2.0 I mean more advanced features that create dynamic content, like Google Maps or interactive content. Some of these things can be easily embedded without plugins depending on how easy the content creator has made it to embed. Wordpress for instance has thousands of plugins.
Some plugins are not CMS specific. A good example would be Disqus, which lets you add comments to your website by adding a small amount of code to your html.
A web framework is just a software framework built to work on website code. Frameworks can be in any language. Trying to mesh frameworks from different languages can be a challenge though. Usually, part of the framework code is built to work on the server side and is never seen by the client. Frameworks are small to large size code packages that can be used to build websites more quickly. They can add a vast array of functionality to your site. Some examples are CakePHP, anything installed with NuGet for .Net, or Rails.
Finally, another way to look at it is that most CMS solutions, are web frameworks themselves. They are just on the larger end of the code base scale.
You should use a CMS when you want an all ready developed platform to manage contents (for the most) and you've usual (I mean common) and not too specific need.
You should use a framework when you want to build your own, specific purpose, platform. Hence, you need a base to start your web app/website with, without "reinventing the wheel" (so have a built-in email validator, ip validator, filters, and so on).
From my understanding, a CMS is a pre-built system that allows you to quickly add/modify content. It gives the average user enough flexibility to change what your site does by installing modules and themes.
A framework is a system, sort of like a CMS, but grants you even more flexibility with your site as you are to write all of the code yourself.
Firstly CMS and Web Frameworks are not the same thing however CMS is on top of the framework and can form a standard of its own as well as integrate to the framework. The important difference between the two can be in for example Drupal is CMS as CMF that can easily break if you install a badly coded module. Even getting to understand or work with a pre defined naming convention for example theming is a dirty job in cms. Leave it for quick information or marketing based website. You must know one theme and customize it to suit. However WF are more flixible and programmers oriented. Why will learn to hard code drupal api if you can do much cleaner output with the framework. You can define your own functions and you don't have to install a load of rubbish that you don't need.