Northstar - It's hard to generalize on the basis of any one factor. All we know for sure about the "penalty" is that it's an over optimization penalty of some kind. It's also been observed that inbound linking weakness, excessive repetition of keywords in menus, etc, might be a contributing factor.
The penalty or filter (or combinations of these) is phrase specific, and it generally affects the most competitive phrases, so you can have a page do quite well for one phrase yet completely tank for another.
I believe that Google has been increasingly applying its filters to less competitive phrases, either because the growth of the web has made these phrases more competitive, or because they're systematically revisiting all algo factor and refining them.
What you describe does sound like a classic -950 or end of results "penalty." Your previously high rankings are part of the pattern.