When is it appropriate to use a program during games with a longer timeframe, such as correspondence chess? Are there rules about when a player may use a chess engine to aid his game?  Is it always frowned upon?  Do you have to specially ask?  Not that you can stop your opponent from using an engine, but is it cheating, or is it ever acceptable?  Thinking about it, I'm not sure what the point of two players using engines would be.
If you haven't agreed before the game then you should assume that it's not allowed. It will usually be regarded as cheating. If you wish to use a computer you should ask your opponent before you do so.

Playing with the assistance of a computer is sometimes called Advanced Chess. If you agree before hand that it's allowed, then there's no problem and both can use a computer freely. Some Advanced Chess tournaments are also played with standard time controls.


  Thinking about it, I'm not sure what the point of two players using engines would be.


The point of Advanced Chess is that a computer is strong at fast and accurate calculation but weak at strategy, while the human is stronger at strategy but more prone to errors in complex tactic situations. The human can use their strategic ability to guide the computer into strong strategical positions or won end game positions, while the computer can check that there are no blunders that the human may have missed. If played well, the playing strength of the human-computer team can be higher than each individual playing alone.