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.
You don't purchase domain names. You pay a registrar a sum of money to register the domain for a period of time.
When the registration period is up the domain is up for grabs (presuming you didn't pay a registrar another sum of money to keep it).
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 :-)