Every student of set theory knows that the early axiomatization of the theory had to deal with spectacular paradoxes such as Russel's, Burali-Forti's etc. This is why the (self-contradictory) unlimited abstraction axiom ($\lbrace x | \phi(x) \rbrace$ is a set for any formula $\phi$) was replaced by the limited abstraction axiom ($\lbrace x \in y | \phi(x) \rbrace$ is a set for any formula $\phi$ and any set $y$).

Now this always struck me as being guesswork ("if this axiom system does not work, let us just toy with it until we get something that looks consistent "). Besides, it is not the only way to counter those "set theory paradoxes" -there's also Neumann-Bernays-Godel classes.

So my (admittedly vague) question is : is there a way to explain e.g. Russel's paradox that does better than just saying, "if you change the axioms this paradox disappears ?" Clearly, I'm looking for an intuitive heuristic, not a technical exact answer.

EDIT June 19 : as pointed out in several answers, the view expressed above is historically false and unfair to the early axiomatizers of ZFC. The main point is that ZFC can be motivated independently from the paradoxes, and "might have been put forth even if naive set theory had been consistent" as explained in the reference by George Boolos provided in one of the answers.