Causal and non-causal systems in real world
In discrete-time systems, causality is a requirement only when processing (filtering) signals in real time; i.e. when the index $n$ corresponds to a physical time $n \times T_s$. In this case, a non-causal system is impossible to implement since calculating the current output would require inputs from a future time.

In practice, however, many systems are not real time.

Image processing, for example, has indexes for horizontal and vertical coordinates. So it's OK to apply a non causal filter to an image (usual examples being 0-centered FIR filters for blurring or sharpening, or IIR filters applied in both directions to obtain 0 phase distorsion).

In time sequences, many times the signal is stored and then processed in non real time, so you may apply non-causal filters there also.