to execute some customized code(any protocols or rules) that user write
That is a key part - also the idea is to have such code exist in the blockchain and to perhaps be run periodically.
Another use case we are considering is what is often called a "dead man's switch" - it would be a script whose purpose would be to move funds from one account to another (in case its owner has disappeared or forgotten their pass phrase).