Absolutely not. You do not want to go overboard, though (it is called “soup soup” when you do this). If you find that the div has no purpose but to hold the background image or clear the float, etc., This means that you did something wrong. Using wrappers (for example, 3 depth levels of div tags for a content area with some backgrounds, etc.), you can correctly execute any layout you need without resorting to "soup-soup". See http://www.digitalperfections.net/ for an example of good (x) HTML with lots of div tags.
To further expand and answer the question about your code, I specifically noticed one thing right off the bat: <div id="divider"></div>- this is bad, because you use this div solely for non-semantic purposes (only for decoration).