I'll qualify this by saying I'm not an expert on this.
My understanding is that, to be able to book in advance, you need to stay on property.
So, if you are travelling for the sole purpose to play golf and want to play several rounds, then advanced booking with accommodations is the way to go.
If you live close enough or will just be in the area, then I think you can call a few weeks in advance (I don't know if it is 2 weeks or 4 weeks or what exactly, but I believe it is on their website)
I have never tried going through a third party to book at any of these places.
As I have posted previously, I do the booking for an annual trip for a group of 8. We have played at Bandon, Cabot, Pinehurst, Kohler, Big Cedar Lodge and a few other places. We are booked for Sand Valley this year (booked like two years ago). The only places that I've had particular difficulty getting into are Bandon and SV. after booking them in the past and waiting on the phone in a queue for several hours, I actually don't mind the lottery system they have now. I plan on just registering for each of them each year and if I get in I'll go. If not, I'll go somewhere else and try again. I figure I'll get in to one every several years and that'll be fine for us.