I have a two year old who is occasionally intentionally disobedient. She's quite well developed for her age and understands instructions given. But at the dinner table she is often quite disobedient, particularly with throwing food around.
Usually what will happen is that she will grow bored with her dinner and pick up a piece of vegetable and throw it across the table. We will tell her not to do that and in an act of defiance she'll pick another piece up, look straight at us, smile, and then throw the new piece of food, as if to say "what are you going to do about it"?
We have tried time-out discipline and also threaten to not give her dessert (which is a threat we have followed up with on a number of occasions).
What else can we try and why is she doing this?