Yahoo and google both use different search engines which give the different results. But I also think that each of the two sites searches in different lists of sites. Google always get you the result you are looking for, but I always use Yahoo because it seems to be more direct in its selection. So I you are not sure about what you are looking for use google else yahoo.
You are right, there is quite a huge difference of keyword position in yahoo and google. mostly it is totally true. yahoo and google have different algorithms and techniques on how to rank or position a keywords.
I have noted that for the same keyword my website is positioned in yahoo and google with a huge difference....
example some key is n1 in yahoo and not even listed in the top 100 in google or viceversa.
To get good results in Yahoo you need to do on-page optimization and add some quality content. Also try to get listed in yahoo directories and involve around their yahoo group/yahoo messenger etc that will help you overall.
There are several factors that play a role in that, the best way to sum it up for you is that both Googles & yahoo's Mathematical Algorithms are programed differently (Thus apply different weight values for various elements).
In addition, there are sites out there that are not listed with yahoo, yet they are with Google (Or vise Versa). In this case it would be obvious that due to more competition in Google Vs. Less competition in yahoo for the same search phrase would equate to different SERP Listings.
Only Google & Yahoo know their exact weight distribution formula for mathematical algorithmic Placements.
the question you really want to ask yourself is: do you really care about Yahoo? They are losing search market share to Google. MSN is a non-starter so far in the search market as well. If you're going to tune your site and your SEO strategy, for now you should tune it primarily for Google's ever-changing algorithm.