Can I just turn it around a bit and start by saying that there are penalties and there are penalties and people use the terms loosely.
Strictly speaking, a penalty is when Google, algorithmically or manually, flags your page as in violation of guidelines and puts in a true penalty that pushes your page lower down in the results than it should be. These are things like the "minus 950", "minus 30" and "minus 50" penalties. (see the Penalties topic here: [webmasterworld.com
I doubt this is happening to you.
But what you may be doing is splitting the authority of those pages. So in other words, as a single page, it might warrant ranking #8 for the main term, but instead you have a page at 50 and a page at 100. It's not a *penalty* per se, but it is bad.
So a few things you can do
- Solve the problem - in other words, stop this from happening. I'm guessing it's a Windows server and some inbound URLs are using mixed case, and because Windows is case insensitive, it's getting carried over. Find those inbound URLs and change them! I can't say I'm familiar with this problem, but it's like any other dupe URL problem (essentially like with and without a trailing slash) and anything you do to solve it will be less effective than stopping it at the source.
- set a "canonical" tag on each page so it tells the SEs what the canonical URL for that page is. This tells the search engine that you've settled on a URL and which one it is, but it doesn't necessarily send the signal that the old URL is bad.
- do a 301 redirect from the mixed case to the all-lower case page. This tells the SE to take the old URL out of the index and just use the canonical one.
Offhand, those are the three things I would focus on.