It's a great game. As far as the hackers go, you can find plenty of servers where the admins don't let that stuff fly. Or you can use commands to the admin like /aimbots for hackers, /lvls if there is one guy 10-20 levels higher then everyone else and just wrecking house, /request players for when your team is getting outnumbered and /map for when your team is doing badly on a certain one. There are other commands and not every server uses all of them if any at all. But you can find those servers easily enough and simply bookmark them. Heck, I've even been on servers that do kick votes.
And as far as lag, well everyone with $20 and a dial-up connection wants to host a server. So what can you do? Well, just find the ones where your ping is on par with everyone else. You should be able judge this with delay times in game.