How should a "working mathematician" think about sets? (ZFC, category theory, urelements) Note that "a working mathematician" is probably not the best choice of words, it's supposed to mean "someone who needs the theory for applications rather than for its own sake". Think about it as a homage to Mac Lane's classic. I'm in no way implying that set theory is not "real mathematics" (whatever that expression might mean, though I've heard some people say it, and I don't respect this point of view that something abstract is "not real mathematics") and I have a great respect for that field of study.
However, I'm personally not interested in set theory and its logic for their own sake (as of now). For a while I have treated them naively, and it was fine as I haven't needed anything beyond introductory chapters in compheresnive books on algebra, analysis or topology. But recently I decided to understand the foundations of category theory based on Grothendieck universes and inaccessible cardinals. So, I went to read some sources on set theory. And was really confused at first about such definitions as of a "transitive set", which implicitly assume that all elements of all sets are sets. Then I read more about it and discovered that in $\mathrm{ZFC}$

everything is a set!

It seemed absurd to me at first. After consulting several sources, I realized that ZFC was meant to be a (or even the) foundation for mathematics, rather than simply a theory which gives us a framework to work with sets, so at that time people thought that every mathematical object can be defined in term of sets. It didn't seem as unreasonable as before anymore, but still...
It still doesn't feel right for me. I understand that at the time when Zermelo and Fraenkel were developing axiomatic set theory, it was reasonable to think that every conceivable mathematical object is set. But it was a long time ago; is it still this way - especially concerning category theory?
If we work in $\mathrm{ZFC}$ (+ $\mathrm{UA}$) we have to assume that every object in any category is a actually as set. And the same should go for morphisms. Because, given a category $\mathrm{C}$, $\operatorname{ob} \mathrm{C}$ and $\operatorname{mor} \mathrm{C}$ are sets, so their elements, namely, objects and morphisms of $\mathrm{C}$, should also be sets. 
The question is: is the assumption that there are no urelements, that is, that every conceivable mathematical object can be modeled in term of sets, reasonable, as of the second decade of the 21st century? Is there an area of mathematics where we need urelements? Can this way of thinking be a burden in some mathematical fields? (Actually, it's three questions, sorry. But they are related)
P.S. I hope this question is not too "elementary" for this site. But as I understand there are quite a lot of working mathematicians who don't think much about foundations. So, even if this question is not useful for them, it can at least be interesting for them. 
 A: This complements the other answers. Let's take the natural numbers as an example for discussion.
When we use mathematics, we typically want to use properties of the natural numbers: after every natural number there's a next one, adding two of them yields another one, same with multiplying, those two operations play nice together (distributive laws), the principle of induction, prime numbers and factorization, etc. etc.
At some point mathematicians wonder whether using these properties is a good idea. For example, could some of those properties contradict other properties in some subtle way? (That induction property, in particular, might hide some subtle pitfalls....) Does there even exist a set that (once $+$ and $\times$ are defined on that set the way we want them to be defined) has all of the properties we want the natural numbers to have? In other words, are those properties "consistent", and do they have a "model"?
Set theory provides a way to construct a set, and operations $+$ and $\times$ on that set, for which it can be proved that all of the properties we want to hold for the natural numbers actually hold for that set. This provides mathematicians with formal reassurance that there isn't some subtle fatal flaw with our list of properties. Nevertheless, when we work with the natural numbers, we generally work with the properties themselves, without worrying about whether $6$ is a set or urelement or whatever.
Formalizing "the list of properties we want the natural numbers to have" is something that itself required some thought; you can read more about the Peano axioms, for example. And formalizing what it means for a collection of mathematical statements to be "consistent" is also something that requires thought; this is what ZFC addresses.
A: Set theory provides a foundation for mathematics in roughly the same way that Turing machines provide a foundation for computer science.  A computer program written in Java or assembly language isn't actually a Turing machine, and there are lots of good reasons not to do real programming in Turing machines - real languages have all sorts of useful higher order concepts.  But Turing machines are a useful foundation because everything else can be encoded by Turing machines, and because it's much easier to study Turing machines than it is to study a more complicated higher order language.
Similarly, the point isn't that every mathematical object is a set, the point is that every mathematical object can be encoded by a set.  It doesn't represent higher level ideas, like the fact that mathematical objects usually have types (as one of my colleagues likes to point out, the question "is the integer 6 an abelian group" is technically a reasonable one in set theory, but not in mathematics).  But it's a (relatively) simple system to study, and just about everything we want to do can be encoded in set theory.
To answer your specific questions, yes, it's still true that every mathematical object can be encoded as a set.  Because sets are very flexible, there's no reason to think this will not continue to be true.  There is no current field of mathematics in which urelements are essential, and because things one would do with urelements can instead be encoded with sets, there is unlikely to be such a field.
ZFC does impose some limitations on category theory, because it doesn't allow objects on the same scale of the universe of sets.  (For instance the category of categories is awkward to consider within ZFC, because the objects of this category cannot be a set.)  These are reflected in the discussions of "small" and "locally small" categories.  These issues can be worked around in mild extensions of ZFC by using things like Grothendieck universes.  (Note that this is a feature of ZFC, not of set theoretic foundations in general.  Quine's New Foundations allows certain self-containing sets.)
This way of thinking can't really be burden because ZFC doesn't impose a way of thinking.  The fact that things can be encoded as sets doesn't, and shouldn't, mean that we always think of them that way.  It's perfectly consistent with having a set theoretic foundation to work with things like urelements, or to think about groups and categories without thinking of them as sets.  (Worrying about things like self-containing categories can be a burden, but it's a necessary one given the history of paradoxical objects containing themselves.)
A: 
Is there an area of mathematics where we need urelements?

Yes, in a certain sense. Indeed, we can get an example of such just within set theory.
Admissible set theory provides many pocwerful tools for reasoning about models of set theory. The downside is that they only directly apply to admissible sets (= transitive models of Kripke-Platek set theory, a weak fragment of $\mathsf{ZF}$, possibly formulated to allow urelements). To get around this limitation, Barwise introduced the notion of the admissible cover of a (possibly ill-founded) model of set theory. Specifically, given $(M,E) \models \mathsf{KP}$ we can talk about admissible structures with $M$ as their urelements. The admissible cover of $M$ is the smallest such admissible structure satisfying certain reasonable properties. See the appendix of Barwise's book for details (conveniently available here). The admissible cover provides a way for some of the tools of admissible set theory to be applied to ill-founded models of set theory. To use the application Barwise gives in his appendix, one can prove that any countable model of $\mathsf{ZF}$ has an end-extension to a model of $\mathsf{ZF} + V = L$. Starting with a well-founded model of $\mathsf{ZF}$, this is a straightforward argument using the Barwise compactness theorem. Proving the result for ill-founded models goes through looking at the admissible cover for the ill-founded model.
The notion of the admissible cover only makes sense if we allow urelements for our models of set theory, so this gives us something where we need urelements.
But, let me point out that there is a sense in which the use of urelements can be avoided here. Namely, we can always find copies of whatever structure we are interested in inside the pure sets, i.e. sets whose transitive closure contain no urelements. If $A$ is some set whose transitive closure contains urelements, via a simple inductive argument we can find a pure set $B$ and relation $E$ on $B$ so that $(\mathrm{tc}(A),\mathord\in \upharpoonright \mathrm{tc}(A)) \cong (B,E)$. (And from this we can identify the copy of $A$'s urelements in $B$.) To use the example from the above paragraph, $\mathsf{ZFC}$ (formulated without urelements) proves that any model of $\mathsf{ZF}$ can be end-extended to a model of $\mathsf{ZF} + V = L$; the arguments involving the admissible cover can be simulated just using pure sets to get a proof that works in the no-urelements context.
A: If you have urelements, then you have objects that contain other objects (sets)  or are empty, and objects that contain no other objects (urelements) and maybe you count $\emptyset$. As long as you are not trying to find objects in them, they are no different. So the only thing urelements give you are objects in which you are not allowed to take elements.
If you want to limit the $\in$-relation in this way for some set of urelements, you can do the following. You fix a set you do not care about. For example, you can think of all sets being generated in "stages" indexed by ordinals. In most of mathematics, you can limit how far you want to go, so you can take all sets generated at a certain sufficiently high stage, this will give you a set. Let $U$ be this set. You can then define $\in^*$ by $(x\in^* y)\iff (x\in y \wedge y\notin U)$. For the relation $\in^*$, the set $U$ is a set of urelements and for most of your applications, you will be able to replace $\epsilon$ by $\epsilon^*$. There might be applications where you have to choose $U$ differently, but there should usually be some set you do not care about. Otherwise, you really are doing set theory. So urelements are not needed on a formal level. If you want to have large categories encoded in set theories, you can just assume that really high stages exist, the existence of inaccessible cardinals. It helps to have an understanding of set theory when doing such constructions, but it is usually clear that one can avoid any trouble.
On a more philosophical level, you might be worried by the fact that for certain ways of encoding real numbers as sets, you have $3\subseteq \pi$. You might think this answers a question that shouldn't be even askable, and you would not be alone in this. But foundations need to be somewhat artificial. A picture is not an arrangement of pixels, but the possibility to do so allows us to represent pictures in a way in which can talk about the concept. Mathematics is full of different things and a common foundation kind of requires us to break this diversity to a few things. Luckily, the working mathematician does not need to worry constantly about foundations, so nobody forces you to commit to a particular, somewhat artificial, representation of the things you work with.  
That every object in set theory but the empty set contains other sets brings additional structure that is useless baggage for many applications. For perspectives on the general question of whether this is avoidable, see the question Set theories without “junk” theorems?.
A: A real number "is" an initial segment with no maximum in the linearly ordered set of all rational numbers. Or else a real number "is" an equivalence class of Cauchy sequences.
In the first case, the real number $1.4$ is a subset of the real number $\sqrt 2$, and of course that is nonsense, as seen by the fact that in the second case, it's not.
It is only in that sense that everything "is" a set. It is more accurate to say that everything can be encoded as a set.
A: I prefer to think of ZFC as a proposed model of mathematics. I want to emphasize both words "proposed" and "model". For comparison, consider quantum mechanics. It can be modeled — as far as we know, perfectly — by the theory of Hilbert spaces. But the state right now of the electron in your retinal cell being excited by photon being emitted by the leftmost pixel in this word is not a vector in a Hilbert space: there is a Hilbert space $\mathcal H$ with a vector $v \in \mathcal H$ that, so far as we know, perfectly models that physical interaction, but $(v,\mathcal H)$ is only isomorphic to the physical system, it isn't itself a physical system.
So ZFC proposes not that mathematics "is" Sets, but that mathematics is "isomorphic to" Sets.
One reason to think that ZFC remains only a proposed model is that there is continued debate about the "correct" axioms for set theory. You can find, for example, recent papers by Woodin arguing that $\mathfrak c = \aleph_2$. Certainly such arguments are not "proofs" in ZFC — the value of $\mathfrak c$ is independent of ZFC (beyond that ZFC proves $\mathfrak c > \aleph_0$) — but arguments about the "actual mathematical world" (specifically, the actual world of sets).
I wonder how Asaf will interpret this answer in terms of Platonistic burdens.
A: There are already some excellent answers explaining in what senses ZFC can still be a foundation for most mathematics.  But it also seems appropriate to mention some ways in which ZFC is insufficient as a foundation for modern mathematics.  [Disclaimer: throughout this answer I will talk about "ZFC", but the remarks apply just as well to its variations including large cardinals and so on, and in some cases require variations such as removing choice or using constructive logic.]
To start with, by asking the question the way you did, as a dichotomy between sets and "urelements", you bias the answers you're likely to get.  In fact, most real-world alternatives to ZFC are not simply obtained by "adding urelements" that have no members: instead they call into question the whole assumption of ZFC that there is a "membership" relation that can be meaningfully applied to any two mathematical objects.  In such theories there are basic objects, sometimes still called "sets" but other times called something else like "types", and these objects have "elements"; but we cannot compare elements of two different sets/types or ask whether one set/type is an element or subset of another.
One such theory that calls its objects "sets" is Lawvere's ETCS.  Those that call their objects "types" are generally called "type theory" of one sort or another; here is a blog post I wrote introducing type theory.  In general, these alternative theories are inter-translatable with ZFC (or some minor variation of it), and in particular equiconsistent.  Thus, any of them can serve equally well to encode most of mathematics and thereby guarantee its consistency.  
However, consistency is not the only purpose of having a foundation for mathematics.  There are several other purposes that could be mentioned, but one that's particularly relevant is "change of universe" or "internalization".  Any sufficiently powerful formal system like ZFC, ETCS, or type theory admits more than one model; even if we assume there is one "real" model (which is itself debatable), from that starting model we can always construct lots of other models.  Moreover, it so happens that many of these other models are intrinsically interesting as mathematical objects even if we accept the original model as the only "real" one.  For instance, if $X$ is any topological space, the sheaves on $X$ form a model of these theories (at least if we use constructive logic).
Now if some formal system can be used as a foundation for (some fragment of) mathematics, that means that any theorem can be encoded into that formal system, and is therefore "true internally" in any model of that formal system.  If this model is not the "real" one, then that "internal" truth will be different from "real" or "external" truth, but if the model is interesting then the internal truth is generally also interesting.  For instance, the theory of local rings, when interpreted internally in the model of sheaves on $X$, becomes the theory of sheaves of rings on $X$ whose stalks are all local; while the theory of real numbers becomes the theory of continuous real-valued functions on $X$.  In this way, using a formal system as a foundation for mathematics allows us to get much more bang for our buck: we prove one theorem, and we automatically deduce not only the "real" version of that theorem but also the "internalized" versions of that theorem in all other models of our formal system.
The reason I bring this up is that as compared with ETCS and type theory, ZFC is poorly-adapted to this sort of use.  Even if our "real" model consists of ZFC-style sets with a global membership relation, most other interesting models do not come naturally with one: they generally present as categories of one sort or another, and in general there is no way to say that one object of a category is a member of another one.  So it is much more straightforward to internalize ETCS or type theory into a category than to internalize ZFC.
It is possible to internalize ZFC (or related theories) into a category, such as by first internalizing ETCS or type theory and then passing across the above-mentioned translation to ZFC.  However, in many cases this involves a loss of information.  To construct of a model of ZFC from a model of ETCS or type theory, we explicitly build "well-founded hereditary membership trees" of some sort or other; see for instance here.  The resulting model only "sees" those sets or types in the original model that can be equipped with such a structure, sometimes called the "well-founded part" of a category.  In some cases this is the whole thing; in other cases it can be quite different.  So if we want our internalized theorems to apply to all objects of a category, then ZFC-style theories aren't good enough.
In the case of 1-categories, we can to a certain extent fix this problem by... adding urelements!  We consider the "non-well-founded" objects of our category to be "sets of urelements", thereby including them in the resulting model of ZFC+urelements (see for instance this paper).  So this actually provides an answer even to your question as phrased, "do we need urelements"?  The construction is still much more involved than modeling ETCS or type theory, but at least it is possible.
More radical still is the situation for higher categories, whose objects behave internally like higher groupoids (or even higher categories themselves).  No ZFC-style theory is known whose basic objects behave in this way, even allowing urelements.  But there is a version of type theory, called homotopy type theory, whose types do behave like higher groupoids.  (The model theory of homotopy type theory is not completely developed, but indications so far are promising.)  Thus, for the purpose of internalizing in higher categories, it seems that ZFC really is insufficient.
A different way to put this last point is as follows.  A central concept in homotopy theory and higher category theory is that of an $\infty$-groupoid.  Unsurprisingly, because sets are very flexible, the notion of $\infty$-groupoid --- or at least A notion of $\infty$-groupoid --- can be encoded using sets (for instance, as a Kan simplicial set).  However, this encoding forces the thereby-encoded $\infty$-groupoids to have certain properties, such as "Whitehead's principle" (a map inducing isomorphisms on all homotopy groups is an equivalence) or "sets cover" (every $\infty$-groupoid admits a surjective map from a discrete one).  But we might not necessarily want these properties to hold: for instance, when internalizing in a higher category, with $\infty$-groupoids corresponding to objects of that category, they often turn out to be false.
So I would claim, contrary to what others have said, that ZFC does impose a way of thinking: namely, an assumption that everything should be encoded using sets.  It's an observed fact that essentially all mathematical concepts can be encoded somehow as sets.  But it's only an article of faith that every theorem we can prove about the encoding is necessarily true about the original concept.
A: If we follow the category-theoretic notion that we only care about things "up to equivalence", then we actually have

"Everything is a set!" is equivalent to "Sets have urelements!"

More precisely, suppose we have some reasonable universe of sets with urelements in which the cardinality of every set is an ordinary cardinal number (e.g. the initial ordinal number of that cardinality). Define two categories:


*

*SetU, the category of all sets (with urelements) and functions between them

*Set, the full subcategory of SetU consisting only of ordinary sets


The premise implies that every object of SetU is isomorphic to an object of Set, and consequently we have an equivalence of categories SetU $\equiv$ Set.
On the presumption that everything is "built up" from the category of sets, we conclude that, up to equivalence, doing math with urelements is the same thing as doing math without urelements.
A: Within traditional set theory (and without abandoning it for category theory) one can make a compelling case that not everything is a set, or more precisely that the assumption that everything is a set is both limiting and counterproductive when dealing with fruitful frameworks that are conservative extensions of the traditional set theory. 
Thus, Edward Nelson's Internal Set Theory is a way of working with infinitesimals within the ordinary real line, modulo foundational adjustments that involve introducing a richer language into set theory.  Namely, one works not merely with an $\in$-language with with a $(\in,\mathbf{st})$-language.  Here $\mathbf{st}$ is a one-place predicate "standard", where $\mathbf{st}(x)$ reads "$x$ is standard". To emphasize, Nelson's theory is a conservative extension of ZFC, unlike some of the other frameworks discussed in this space.
The point is that the collection of standard $x$'s is typically not a set, even when $x$ are ordinary (integer or real) numbers.  Thus the new predicate violates the axiom of separation.  A blanket assumption that "everything is a set" would make Nelson's approach incomprehensible.
A: For an alternative view have a look at Vladimir Voevodsky's Univalent Foundations of Mathematics and Homotopy Type Theory. I found the talk of Sept 5, 2011 reasonable.
As a working Engineer with a strong interest in maths, this was something that sparked my interest - I think it was one of these posts, especially as it covers mechanisms that allow computer proofs (I use the Mathcad CAS as a core part of my daily work). 
