I have gone to WalMart (in Fredericksburg VA) and cashed several checks. They have never charged me a fee, though I am not an account holder with them.
Several other banks like BankOfAmerica and Wachovia charge me a 5-dollar fee to cash their own checks, which I think is a real ripoff.
If I weren't reasonably happy with the bank I've had for 25 years, I'd probably deal with WoodForest at WalMart. They are open ridiculous hours, compared to other bankc -- evenings, weekends, holidays. Really a smart business move on their part. I can remember busting my butt to get to the drive-in window before it closed at 6 pm every night.