My peronal point of view is to always present data in a single window and never use Frames. The only times I've seen them used in a way I like is 'wrapping' pages from a remote site.
I'll explain better: site A sells bits but has no method for payment. Site B has a generic payment scheme. People buy stuff from site A, it puts a frame across the top and then sends the client off to site B to pay. As far as the client knows, they did it completely within the realms of site A.
Some problems caused by frames:
if you don't get it right, your frames can get all messed up (ie added complication)if you try to implement a MVC pattern you'll be heading for trouble.you can't mix secure and unsecure framesas stated before, you can't link to a specific 'frame state', only the original one.if you hit the reload button, it reloads to the original state, not the current state.i hate them (I'm sure I'll think of more though)
My view is that if you would normally put common navigation elements in a frame, if you include them in a table, optimise the HTML so it isn't too heavy and include images that can be cached the overhead isn't too high.
DOM