The 21 day theory may or may not change habits. It can change instantly if you experience a major traumatic event in your life. Out side of that, there is a lag time. As mentioned in another thread, to change your habits it is the sub conscious mind that needs to be re programmed. In other words, you need to retrain your brain, that has been programmed your entire life and even while your mother was pregnant with you. Since most of us here are in our 20's, 30's, 40's, etc...that is how much programming we have been given. Do you really think repetitive programming that we have been given for that long a time will be undone in 21 days?
Here are some other threads on this topic...
Your Self Image - don't sabotage yourself
Mental Programming
How to Program Your Subconscious Mind
Chaney