This sounds dumb, but I have another tactic that works for me, and I have mentioned it before.
I have two daughters, 20 years old and 23 years old. They live far away, so when they come to visit me, all budgeting tends to go out the window. I try to find restaurant.com deals and the like, but I still know I am going to be spending big when they come.
Soo... when I know they are coming, I adjust other budgets. I simply spend less in other categories so the money is there. Couponing combined with shopping sales has given me some of the extra funds I need during months when visits happen.
I guess what I am saying is that I don't fight it anymore, I work with it. DH and I have gone 3 or 4 weeks without eating out or going out to movies or whatever so I can be ready for the kids visits.
Also, I do an old fashioned Christmas club- $25 a week goes into it. In November I get a check for $1300 that covers Christmas. Then I am not scrambling in November and December to take care of holiday expenses.
I like the ticket in the wallet idea! Brilliant!