There are various Yahoo downloader programs out there. Some are free, some cost money. However, as you've already determined there's a significant amount of problems with the data including:
1. No delisted history - any system testing you do based on Yahoo data is subject to population bias. ie you can only test on the stocks that are currently listed.
2. Significant inaccuracies for any stock exchange that trades in increments less than 1c. This includes the Australian Stock Exchange (ASX), Singapore Exchange, some NASDAQ stocks and most OTCBB & Pink Sheet stocks. This happens because Yahoo's data is rounded to the nearest cent. For example, there are 14000 listed instruments on the ASX. Over 8000 of them are currently trading below 20c which means they move in either 0.5 or 0.1c increments. Since Yahoo only prices in cents this introduce VERY SIGNIFICANT innacuracies. - eg. a 2.6c shown as 3c represents a 15% error).
3. Normal dividends are adjusted by subtracting all historical data by the dividend amount. Exchanges such as the ASX do not adjust price data for standard dividends. By diluting it the way they do, any technical analysis or backtesting no longer shows a correct % return, nor does it show a critical technical levels such as support and resistance.
4. No sector information - critical if you want to perform sector-based analysis.
5. Significant number of missing stock splits and other capital adjustments.
6. There is no guarantee that Yahoo will continue to supply data, especially to automated download programs. In Yahoo's Terms of Service, they have a clause which says "You agree not to reproduce, duplicate, copy, sell, trade, resell or exploit for any commercial purposes, any portion of the Service (including your Yahoo! I.D.), use of the Service, or access to the Service.". Companies that produce Yahoo downloaders are effectively exploiting the Yahoo service and are therefore in breach of the Yahoo Terms of Service and Yahoo may shut down these types of automated Yahoo downloading programs very easily.
So, whilst the Yahoo data is free to obtain from the Yahoo site, you need to determine what you really need from the data. If you're every likely to want to view historical charts (eg for system development / backtesting / historical interest) then the old adage "you get what you pay for" certainly applies here.
The best analogy I can use for data feeds is they are like a game of Chinese Whispers.
http://www.chinesewhispers.com/chinesewhispers.php
In the case of programs that extract data from Yahoo, the exchange sends data to Reuters. Reuters interpret the data, put it into their databases, then take an extract of the data and send it to Yahoo. Yahoo interprets the data, puts it into their database, then extracts it onto the Yahoo Finance web site. Then the downloading program obtains data from the Yahoo site, interprets it, and puts it onto the user's PC. If at any step of the above process, the interpretation is slightly incorrect then you have a discrepancy between actual events on the market and data you receive. This is clearly the case with the Databull/HQuotes/Quotes4U products on the market.
The data product I'm responsible for (Premium Data) is not adjusted for cash dividends but is adjusted for other items (such as splits, consolidations, demergers, capital returns etc.)
Cheers,
Richard.