In my recent Podcast with Bill Slawski we focused on discussing search engine ranking factors. Bill is known throughout the industry for the great work he does examining and writing about search engine patents, which he does on the SEO by the Sea blog.
One of the interesting areas we discussed was ways that search engines can determine user intent. One of the simplest of these is be looking at the search query itself. For example "buy digital camera" is a very different query from "digital camera reviews". This is the easy stuff.
The search engines can also look at query streams. For example, if the first query was for "seattle hotels", and next query is for "seafood restaurants", the chances are greater that the user is looking for seafood restaurants in and around Seattle.
Next, you can start determining a person's location dynamically. For example, if the IP address from which they are doing the query is in Boston, and they search on seafood restaurants, they may be looking for seafood restaurants in and around Boston. If the user is doing a search from a mobile device, then cell tower triangulation can be used to determine the user's location.
Of course, this can be made even more complex. For example, the user's IP address could be in Boston, and search on "seattle hotels", and then search on "seafood restaurants". So do they want a seafood restuarant in Boston or Seattle? Perhaps the best thing to do here is to show some preference to results from both cities.
There is much, much more that the search engines can do. They can look at preferences that you have specified in other products, such as language. They can see what query patterns other users followed who used similar patterns to the one the user is currently following, and try to anticipate the next query and start presenting some of those results earlier in the process.
For example, if most users who enter "digital cameras", then "sony digital cameras", and then pick a particular model number, the search engine knows that this is an indicator that they should consider highlight pages with information on that model number of camera in response to the "sony digital cameras" query. Ultimately, as more and more signals emerge, the search engines will get better and better at this.