Another way I can think of is not to get xp at all for activities, but people could get a level when they accomplish a goal. Like for construction skill one would get level 1 when he build a bench. After that he can build more benches if he needs some, but that won't give him any xp or levels. He will get his next level only when he build a tent.
For combat it could be the same, he gets lvl 1 when he kill a wolf. After that killing wolves won't give him xp, he can kill them though for resources. He will get the next level when he kills a bear, the 3rd when he kills a zombie or whatever. The higher level the goal is, it should be harder and harder to accomplish, harder to kill the monster or in building-wise would need more resources and would take more time.
And of course every new level opens up a new set of available goals, like you won't able to build a tent till you haven't built a bench. And you won't be able to kill a bear till you haven't killed a wolf ( you would be able to attack it though, just wouldn't be able to finish it up.)