Yes, we have a similar situation, if we have the foresight to explain things we are likely to get a good response from our 3 year old. If we don't, she can be like a brick wall. Unwinding her after she's gotten upset is a lot harder, but still possible (usually) by pulling her aside and using a calm voice, and finding an 'angle' that makes sense/has impact for her.
I am bad about not putting her in time out when she really ought to go, and otherwise upholding the rules but I know I haven't anyone to blame but myself on that. When I do firmly keep a rule in place for a few days going, it makes a world of difference, and then is easier to keep in place going forward.
She knows what to expect and I think she likes it better.