I've ridden 14,000+ miles on my Scott bike and never have had to replace my cassette OR chainring. I ride hills here all the time (the only way out of town is over hills). I have 10 speed Ultegra components on my bike. I will say, however, that when I first got the bike in '05, I was changing out the chain every 1200-1500 miles. I was using the Shimano Ultegra 10 speed chain. Then, last year, I put on a 10 Speed Dura Ace chain (the original NOT the new version). I recently changed out that chain after about 4500 miles. Why is that??? Well, all I can say is, Dura Ace is a better chain- stronger links perhaps. Also I changed lube from ProLink to White Lightning. I generally lube my chain about every 100 miles or so. I also clean my drive train on a regular basis, including getting the gunk that collects in the chain out with a metal brush.
Your cassette shouldn't be wearing out this soon. Another friend of mine who is also an ace mechanic, hasn't changed out his cassette or chainring for 30,000 miles. He's a real stickler for clean bikes. And for keeping his bikes in tip top shape.
I took my bike into a LBS and they said I should replace my cassette (and chain). I talked to my mechanic friend, and he recommended that we first just change out the chain (which we did)and see how it shifted after that. Then one of my shifting cables broke on a ride, so we also changed them. Now my bike works perfectly. No expensive cassette repairs.
Try a Dura Ace chain and make sure that you have your cables checked at the same time (should be replaced at least every 2 yrs or more often if you ride a lot). My cables were 5 yrs old so they were definitely at the end of their lifespan!!! Get a chain measuring tool as well. LBS have them.