I think perhaps one reason why contravariance is more natural than covariance is what Qiaochu indicates in his answer: contravariant functors have more of an opportunity to be "local." For instance, let $X, Y$ be topological spaces, and $f: X \to Y$ a continuous map. Then a sheaf on $Y$ when pulled back to $X$ at a point $x$ depends only on the local nature near the single point $f(x)$. Things are not so nice when pushing forward a sheaf. Thus it happens that pull-backs preserve stalks, while push-forwards need not (unless you are working with a particularly nice map $f$). In particular, if one has a bundle on $Y$, the local nature implies that it can be pulled back to $X$, while pushing a vector bundle forward will only give a sheaf, not necessarily a locally free one (i.e. a bundle).
In algebraic geometry, one of the first representable functors one encounters is the one that represents projective space. Namely, fix a field $k$ and an integer $n$; then a map from a $k$-scheme $X$ into $\mathbb{P}^n_k$ is given by a line bundle on $X$ and $n+1$ global sections generating it (up to isomorphism). This is contravariant because you can pull-back line bundles and the generating property of global sections. You can't push this forward in a reasonable manner. (This universal property generalizes to projective space bundles over any scheme.)