I recently purchased an existing domain name through the site name.com and after I made the payment, I realized that the domain expired about 10 days earlier. Is it legal/good practice to sell already expired domains as-is, or would most domain selling companies also extend the expiration date by an extra year. It wouldn't be such a big deal, however domains with this particular TLD cost $89/year to renew.
The day that the registration is up they are valid to be resold to someone else. Registrars won't take on an extra year for free.
You don't purchase domain names. You pay a registrar a sum of money to register the domain for a period of time.
When domains expire many (but not all) registrars keep them alive for a grace period (10 days used to be pretty common). This allows the registrant (you) the chance to renew the domain before someone else grabs it (and thus you avoid a protracted UDRP fight with the new "owner"). Registrars are not obligated to do this though, as far as I'm aware.
Similarly when you move to a new registrar they may honor the balance of your old registration period, or give you a "free year" of registration -- this is just a sales gimmick though: They're not selling a product, just an administrative service which is about 90% automatic and computer controlled, and they're still making plenty of profit off your registration :-)