I think post-game analysis gives you the best chance of identifying if a player was cheating. This can be done using what is called as the T3/T4 analysis.
This basically measures the frequency at which a player picks one of the top 3 or top 4 moves that are suggested by an engine. This largely eliminates the need to identify the target engine in use (as they will generally agree on the top 4/5 moves even if the order of preference is different).
There are software available that will run a set of games of the user against the top n moves of the engine. Edit:
I am aware of ChessAnalyse that can be used to do such an analysis. You can try the 30 day trial version.