How do chess engines "think"? What I want to know is how engines are programmed to find moves. I'm sure they first calculate the most forcing lines such as captures and checks. But what about subtle, deep positional moves? They seem to find them very quickly as well (Generally speaking. Of course they miss such moves now and then). As in, how are they programmed to look for quiet moves/positional ideas? They can't just brute force every move, since that'd take too long, so there should be some clever way for them to arrive at the best moves really quickly. I'm interested in knowing this because I think it'd help players to think over the board in the real world as well.
In a general way chess engines use a decision tree. The root of the tree is the current position and has a child node for each position that can be made by making a legal move. Each of these nodes in turn have a child node for the positions that can be reached by making a legal move from them. The engine pushes the tree out to a depth defined by its capabilities and the time it is allowed to "think". Positions that can be reached in more than one way are simply cross referenced so that they will not have to be considered more than once. Once the tree is created the computer uses a set of weighted rules to analyze the final positions in the tree and starts to remove those that are undesirable or that the opponent can prevent it from reaching. The tree is cut down this way until only one move remains and the computer makes that move. 

http://www.chess.com/blog/zaifrun has series or articles on creating a chess engine if you want a more in depth look at how they work.