If this happens then it's very likely that we have a blocked position. It also helps a lot to examine the source code of other chess programs. He gave me the permission to add his posting to my site. Each call to Search is designed to return the score of the current position, given a particular search depth. Two values are passed in to Search.
Alpha is always less than beta.
To expand a node in the search, you generate all of the legal moves and try them out one by one. You recursively call Search and each of the resulting positions. This is called a fail-high. A fail-high happens when you find a move that is better than you will allow. If you get one, you know that the opponent has some strategy that will prevent you from achieving the position you are searching, and that they will want to do this, because the position is great from your point of view.