So "top" is actually "window.top" (but since window is part of the global scope you can get away with just "top"). If you read up on what window.top does, you'll discover that it returns "a reference to the topmost window in the window hierarchy". In other words, if you have:
Frame Page B
Famed Page C
and you invoke window.top from either one, you'll get the same window object back (the one for page B).
However, if you instead have:
Frame Page A
Frame Page B
Famed Page C
window.top will always return the window object for page A, whether you call it from A, B, or C.
What I think you want to use instead (although it's hard to know without seeing your site) is window.parent (ie. "parent" if you don't want to bother with "window."). This property returns the immediate parent of the window in question. If you invoke this from C, it will ALWAYS return B's window, even if B is framed inside A. This should allow you to frame your (framing) page however you want, without messing up the logic of the innermost frame.
Hope that helps.