It depends what you mean by realistic. If your game is based around the concept of a physical object moving around an enviornment then, no, you don't. If you are looking for a character controller that behaves like the controller in most first person shooters then you won't get that behaviour from a physics object easily.
As I said in my first response, if you are only dealing with a height-mapped terrain then a perfectly good approach is to raycast down from the position and set the height to a fixed offset above the ground. However, as soon as you want to collide with walls or objects, this approach fails.
My own approach is to use a combination - I have a capsule shape that I collide against the world with, but I combine this with a ray cast to find the ground to set the height and to only apply gravity when not on the floor. This stops the character sliding down slopes due to the minimum separation vector pointing outwards in the direction of the slope normal.
I believe Havok and PhysX both have a far more mature and battle-tested character controller included in their engine. Its something Bullet would benefit from enormously and I'm vaguely thinking about trying to port mine across, although don't hold your breath here, no intention of tackling this in the forseeable future.