Most C++ haters (e.g. me) can program in C++ and probably even do program in it sometimes, but just don't like to. I can certainly do anything in C++ I could do in any other language, just with a hell of a lot more cursing and kicking things.
C++ has many flaws. Let's have a C++ bashing party, hooray. However, a discussion of the merits of C++ boils down to C++ vs C as far as getting things done in the real world and in the domains where C++ and C are applicable. C is absolutely horrible. I cannot imagine why anyone would start a new program or module to a higher level language in C rather than C++. It's like choosing BASIC over a modern scripting language.
I largely agree with you. If I "hate" C++ so much, why do I program in it? The answer is that sometimes I need my code to be very fast, and C++ has language features making abstraction easier than C or Fortran. I think the main reason people choose C instead of C++ is that it is common to overuse C++'s language features, and if you target C, this is impossible. Otherwise, just take "new" and "delete" and write the rest of your program in C...
This does not mean that C++ is difficult. It just means that you may be used to easier languages, and your brain is not flexible enough to deal with C++.
Entrenchment. The main product I work on is 3.5 million lines of C++, built with MCF and ATL. We can frankestein other technologies into there, but its expensive and clunky. The cost of rewriting the whole thing is prohibitive, so C++ it is.