There is no doubt that there are some engine users on CC (or any other online chess sites), and it is extremely annoying to play against some of these guys. CC claims that it could stop cheaters (by which I mean engine users), but I don't think it's that effective. Here is why.
1. If you use other softwares (engines, browsers, IM etc), you will be forced to resign.
I tried this once (on purpose). I think if you switch tasks too many times in a game, the system will force you to resign. But rememember that in nowadays, a lot of people have smartphones and pads, so it is easy for them a run another chess software on those devices.
2. "We compare a cheater's move with engine moves from various engines. If there is a high correlation across games, we assume cheating."
I am a mathematician (specializing in combinatorial game theory) by training, and based on what I know, I think this is not entirely possible. First of all, there are way too many engines out there. If you go to wikipedia, there are at least 50 good free engines (good = 2700+), and many more good private engines, and many, many more simpler engines (like a fancy chess program with funny pieces and boards that you buy for your son who is 6 years old, or those you can install on your phone and play on the bus). And yes, those simple engines may not be as strong as those good ones, but they are more than enough to defeat most of us here on this site. Thus there is no way that one could compare games to all these different engines (especially if the person is cheating with his/her phone, then the chance of finding that particular engine is even smaller). One more thing to note, although most engines are extremely similarly in how they are programmed, even the slightest differences in the programming algorithms could result difference evaluations in different positions, so it also not entirely reasonable to assume that checking against a few engines is representative.
3. "We have many other features of all games logged and analysed. We monitor everything from your rating progress, to who you beat (beating an engine is a good sign that you are an engine!), to all ways in which you interact with our system."
I am not sure what these methods are, and I don't know how well they would work. But due to the size of users and the number of games being played everyday, I don't know if all games are checked seriously. Obviously, those games are checked automatically (by a series of pre-determined criteria), but those can often lead to crazy conclusions. For example if you go to google map, and search for the best route from Toronto to Tokyo by walk, you will see very funny things. That's often how computers works.
Here is what I suggest (I know that some of the things are available to VIPs, but it would be a good idea to open these features up to everyone).
1. Personal stats and recent game history should be available to everyone.
If you think someone is cheating, you should be able to look at his/her rating changes. I am almost certain that CC already uses some time series related models to monitor these changes, but I have to say that human judgements are often way more effective than running a bunch of computer scans. If the graph looks suspicious, then turn to his/her recent games. People's playing styles do not change in a short period of time (especially non-professional players, most of us tend to stick with the same openings/formations for a long time), but computers are much more versatile.
2. You should be able to follow a player and watch his/her games.
If you just played someone, and believe he/she is cheating. Then you should be able to find that person again, and see who he/she is playing. This does three things,
i) it is easier to spot cheaters if you are watching
ii) it puts pressure on the cheater if he/she sees that you (and perhaps others) are spectating a lot of his/her games
iii) if neither of us are highly rated, but a lot of people are spectating our game, then there probably is something wrong (either my opponent is a cheater, or I should stop cheating).
3. Personal blacklists.
I am not sure how many people report cheaters. I often suspect that my opponent might be an engine user, but I never report them (for one thing, I am not 100% sure, and don't want to accuse anyone, and secondly, I am too lazy to email CC). I suggest that everyone should be able to create a blacklist. If I feel someone is cheating (and have checked his/her history), I will put them on my blacklist and will never play this person again. And if a player is on too many blacklists, then he/she probably deserves a careful check.