1. your cable. gunk can get inside the housing and cause friction and imprecise shifting
2. your casette/chainrings/chain for wear. even if your chain is new, worn teeth on the cassette/chainrings will cause shift problems, vice versa for new cassette/chainrings and old chain
3. your derrailleur - check cable tension and high/low settings, should shift from smallest cog to 2nd with ease, as well as from largest to 2nd largest. then start use the barrel adjuster.
4. your chain - are you doing something n00b like using an 8 speed chain on a 9 speed cassette?
5. chain tension - your chain could be too long/too short
6. derrailleur hanger - bent?
7. derrailleur spring tension - any one of the 3 (or more?) springs could also be stuffed. there are tricks to remove and tighten them but are hard to explain w/o diagrams.
8. user - is the user defective?