Something that the .NZ registry does, but I don't think that ICANN does, is take expired domain names and put them into a holding pool. That way, for a period after their expiry, they don't work, but they are marked "pending release", and only the original owner can pay to get it back - everyone else has to wait. This is excellent if you forgot to pay for your domain and it lapsed - the lack of DNS records will point it out, and you won't find someone has bought it out from underneath you.
In 2001, Neil Finn put up an ambitious multimedia website at nilfun.net; with a one year contract on his designer, it seems he also only got a one year registration on the name; it expired, someone else bought it, and now it's never going back to him at all. Neil moved to nilfun.com and (probably unrelated) lost interest in the project.
What's the alternative? Register names for 10 years? Thats obviously what Network Solutions wants you to do.
I'm not sure how to fix the problem; if the price of domain names was hitched up substantially (you can register a .com for a third to half the price of a .nz, so I'm thinking at least ten times), it would mean that anyone with just a joke or an idea wanting to make a name for itself would have to think twice, but the speculators wouldn't be quite so interested either. And because anyone can buy a domain name, everyone does, forcing people with unique names to register them just so no one else does. Just think; if Angelina hadn't snapped up all simple derivatives of Shiloh Jolie-Pitt's domain name, she might have had to resort to jolie-piloh-shitt.com.
I wish the internet had a benevolent dictator who could point at a domain name and say "you are not using that in the spirit of the Internet; I'm taking it away from you".