Well, the trick is that:
(version 2.95-something or something:2.95-something; file named as cpp_2.95-something_i386.deb) do really depends on package called cpp-2.95 (probably also version something:2.95-something, the file is named as cpp-2.95_2.95-something_i386.deb)
Why this is so utterly complex? Well, the idea behind all this is that "cpp" is a meta package that depends on the c preprocessor version that is default preprocessor of current distribution (2.95 on stable, 3.3 on testing/unstable on i386 architecture). In many cases (eg. when developing software) one needs many versions of cpp to coexist in the system; most importantly because gcc 2.95 and 3-series is not fully source-level compatible and the object format of c++ files has changed in 3.0. So, one can install eg. cpp-3.0 to have preprocessor version 3.0 available as "cpp-3.0" (the cpp is just a symlink to some cpp version (whichever is the default for distribution)) and when one installs just "cpp" he gets the default version.
How to fix the problem?
Fetch and install the cpp-2.95 package
first, then cpp.