The Character Controller is designed for the first- and third-person control systems. It comes with movement control in all four directions, jump controls, and independent control of the camera, so the player can run in one direction and shoot in another.
A pretty clear way to describe the Character Controller is by saying that it is very precise with regard to movement, though it lacks fluidity: the character accelerates to maximum speed in the blink of an eye, turns on a dime, and stops the very moment you release the button. In other words, the feeling you get using a Character Controller is not very realistic, and to make it more fluid so it looks realistic, you need to turn to coding.
The Character Controller also doesn't implement physics by itself. It detects collisions but doesn't push or apply forces to the other GameObjects in the scene unless you program it to do so. As a matter of fact, it wouldn't even be affected by gravity if the scripts attached...