Here's the scenario...
Top client has an upgrade to their primary software which runs their brick and mortar business. We'll say they are moving from Version 2 to Version 3. Version 2 (web services) was Classic ASP with no framesets. Version 3 (web services) is ASP.NET within a framed environment.
Add to the framesets the use of popups and you have a recipe for disaster!
Go to the edit button on one of the framed pages and get...
Allow popups for this site?
Sure, I'll allow popups because I am familiar with the site. Great, I've now allowed popups. Go back and click the edit button and get the same message asking me to allow popups. Check my allowed sites and don't see the site that the popups are coming from which is the data being populated in the main frame from a third party database. The popup blocker is not recognizing the third party URI, just the URI of the frameset.
Since I am heavily involved with the development of the site, I know that the main frame is being populated by a third party database. The user has no clue that is happening. They keep allowing popups and get an endless loop of "Allow popups for this site" messages.
The above is just one of many issues the client and their users are now faced with. The developers of the software have pretty much told the client that it would cost too much to bust the site out of frames. There are multiple clients using the same feed format so it is easier for the developers to maintain one set of pages and then send them down the pipeline to the clients.
And, to make matters worse, we now have two sets of data to maintain. One for the framesets which are disallowed from indexing and then one for the static side which generates the data in a user friendly format for the visitor and search engines.
Want to kill your online business? Move into a framed environment and then force popups on your users. On top of that, tell your client that their users will now have to upgrade to the latest version of IE to view the site properly. :)