The SmartObject system was added in CryENGINE 2 and has since then been used for many different purposes. Basically, you use the SmartObject system whenever you want to add more interactivity to your game environment. This can mean things like having AI characters react more naturally to their environment or certain objects reacting to the actions of the player.
Things typically achieved with the SmartObjects system are as follows:
AI characters reacting to actions of the player
Logic puzzles, interactive machines, and so on
Interactive level backgrounds
Scripted AI behaviors
Specific navigational areas for AI characters to use
The system is very flexible and allows you to build all kinds of rules involving different types of classes.