My kids love to dress up anyway so when buying outfits I try to ensure that they will be able to be worn on one of these last minute 'book days'.
I hate how little notice the schools think is ok, many outfits have been knocked up from old clothes & I've been sat sewing late into the night for them to wear it the next day.
Schools seem to think we are loaded & always have money to spare at the drop of a hat (or more like they just don't think about money at all). I have 4 children so these surprise 'fundraising/awareness' days usually cost me a bomb, I've been known to not send money in for 'non school uniform days' because I don't have it. A week or so later I'll add the money 'I owe' on to their school dinner money so I do pay it eventually but sometimes I begrudge paying it as it's not even compulsory to send under 11's in school uniform anyway & therefore they can wear non uniform any day they like without paying.
I think the worst thing the schools do is leave telling you what outfits you need for concerts etc.. til the very last minute when although you know you'll have to buy or make something but you have no idea how much that is going to cost or where you will be able to get hold of the correct outfit/materials (mine have been some easy enough ones: an angel, a shephard, a wise man, a star.... then more awkward ones: a comet, an owl, a spaceman).
You just learn to think out of the box and make things fit. The last book day I sent my daughter in as a cave girl as I couldn't get anything else to fit her (she was 10 years old & I had to buy a small adults costume & then take it in a little to fit as there was NO fancy dress for teenagers in my town & only 2 days to get the outfit sorted). I told her she was 'Bam Bam' from the flintstones as they are books. You will spend ages thinking to find a character from some obscure book to fit the fancy dress you can get lol.
Oh and KHS in my experience they still do the odd 'special day' in comprehensive school so it's not quite all over yet (nowhere near as often as infants or juniours but my boy still did these odd days here & there).