People don't show up because they don't respect you or your time. There's really no incentive to them putting off a friend to meet you for an appointment. This is why I don't shoot for free unless I want stuff for my portfolio.
I charge and require a deposit. I've never had a no-show in my entire career.