Like bicycle or new laptop or something like that. Not very expensive but quite expensive in comparison with day-to-day goods.
I use a "sinking" fund. If you want to buy a $1000 bicycle, you put $100 per month into a savings account. 10 months from now, you can buy your $1000 bicycle.
If you get a $500 windfall, you can either put it in the sinking fund and buy the item earlier. If you lose some income, you can put $50 per month in the fund.
Personally I solve this by saving enough liquid capital (aka checking and savings) to cover pretty much everything for six months. But this is a bad habit.
A better approach is to use budget tracking software to make virtual savings accounts and place payments every paycheck into them, in step with your budget. The biggest challenge you'll likely face is the initial implementation; if you're saving up for a semi-annual car insurance premium and you've got two months left, that's gonna make things difficult. In the best case scenario you already have a savings account, which you reapportion among your various lumpy expenses.
This does mean you need to plan when it is you will actually buy that shiny new Macbook Pro, and stick to it for a number of months. Much more difficult than buying on credit. Especially since these retailers hate dealing in cash.