One cannot write "a \in C" to mean that a is an object of the category C, at least as long as \in is restricted to its precise set-theoretic meaning. However, in my experience it is fairly common to write "a \in C" with this meaning, although perhaps not so common in formal mathematical writing.
One can refer to this sort of thing perjoratively as an "abuse of notation," but one can also regard it as a perfectly legitimate part of informal mathematical language which is not captured by the set-theoretic encoding. One could also formalize it by regarding the symbol "\in" as "overloaded" in a precise sense analogous to programming languages.
I think it is more perspicuous to treat this, not as an overloading of \in, but as an "implicit conversion" associated to the notion of category; that is, we allow the forgetful functor Cat->Set to be applied silently in contexts which otherwise would not type-check. In fact the vast majority of "abuses of notation" are of this character, when applied to, for example, any forgetful functor from an Eilenberg-Moore category; the discrete category functor Set->Cat; the Yoneda embedding C -> [C^op, Set]; the forgetful functor from universal cones to their vertex, etc, etc. In principle this becomes problematic as soon as the category generated by all such implicit conversions has non-identity idempotents; in practice, this category is free on a graph and we hope to identify a shortest path between two vertices! Richard [For admin and other information see: http://www.mta.ca/~cat-dist/ ]