I'm having a tough time finding my original link, but here is the
ENABLE word list
It has 172,000 words and is pretty extensive - it is what Words With Friends uses for their dictionary with some modifications to 2-letter words.
The way we handle it for Wordspionage is via a server database with tables for every letter and word length (i.e. a02,a03,b11, etc). It's very fast and you could do a similar method with local files.
Create a program that parses the list alphabetically and by word length and have it ouput into separate files (i.e. a02,a03,s10, etc.).
Now in your program you can simply look at the first letter of the word to be checked and the length of the word then check it against the corresponding file. Some files will be 1,000 lines or more, but this is much better than looking through 170,000 lines. If you want you could split them up even smaller by the first two letters of the word. When building Wordspionage I found that unnecessary and the performance was good enough (though it is nearly instantaneous when grabbing it from a MySQL database instead).
It's not a predictive spell checker, but it works for word games to verify spelling.