I posted this in the other forum where you also asked this question, but the dscussion is taking place here, so I'm copying this over.
As you have pointed out, and painfully experienced, managing make up matches is a PITA. I run a straight pool league, we're in our 4th season, and I've been where you are.
In my league, players all have the complete season schedule, along with everyone's name, phone number and email addr, and it's up to them to make a match at any time that's mutually agreeable. This may be a little different than your situation.
I believe there are multiple ways to solve this, each with their pros and cons. If you all play at one particular time, it's obvious who didn't show for the match, so you could just forfeit them. This approach is harsh, but works more or less, since people don't want to forfeit and missing matches becomes less frequent. OTOH, you may not want to be a hard ass and many people will have a good excuse, etc., etc. This approach is also likely to draw fewer people next season, even if they don't drop out immediately. I wouldn't use this one.
I gave up on trying to push people to play on time and just use a small incentive (explained below) but I don't think it works well to cause promptness.
As far as handicapping late matches goes, what I do is always let everyone know what their current skill level is (adjusted after every match) and whenever they play a match they play at their then current handicap. This means that people can play early, late or on time and always be playing at the skill level they have earned to that point.
It is true that this could lead to trouble, as in the following (real life) example. Suppose A & B are scheduled to play this week, but for some reason, B is unavailable until the weekend. A, however, is going out of town next week for two weeks and wants to play those matches early to avoid being behind when he returns when the season will be almost over. A plays C at his then current skill level and looses big. His skill level drops. He also plays D, now at the newer, lower skill level and again looses and his skill level drops again. The weekend comes and A & B meet to play. B is now upset that he has to give A a bigger spot than he expected to give him had they played a few days ago.
I had a B quit over this when I wouldn't change A's skill level back to what it was before he played C & D. My logic was/is that had A won both of the matches against C & D and his skill level had gone up, B wouldn't have been griping, and he can't have it both ways. Always playing at what you've currently earned seems to me to be the fairest way to do it, and even the person who quit has come back in a subsequent season.
The only way I would give credibility to the alternative approach is if I could be convinced that someone could choose to play their schedule out of order in a way that gave them an advantage, and I don't really see how they could do this without being obvious, and I would deal with that one on one.
In my experience, people want to play, they don't want forfeits. Being as flexible as possible will help you keep the most players in an age where people's schedules are all over the map.
As to the small incentive I mentioned earlier, we split our prize money into two pools, one for a small tournament at the end of the season, and a bigger portion for a Bonus Points pool, which we pay out on a pro rata share to everyone still in the league at the end of the season. Points are awarded for wins (15) and winning margin (1 add'l point for every 10% the loser is below their target) so a win where the loser only reached 57% of his target would be worth 20 point to the winner and none to the loser. The idea is to encourage people to play their very best in every game.
Points are also awarded for high runs > 2% (5 points) of handicap and > 3% of handicap (10 points). These are awarded to winners a/o losers as appropriate every week.
The last two point awards are also incentives. Players get 2 points for playing their match in the correct week and 1 for being only 1 week late. Since I have players submit a match results sheet with their $ contributions, I award 1 ppoint to each player if the sheet is filled in completely and none if it isn't (since I'll have to follow up to get the data).
Early on I used to update the schedule with info on all the played matches, and I would fill in the skill levels of the upcoming matches as well. I would repost this new data at the pool hall regularly and send it out in an email at the end of each week.
I stopped doing that, because it was a reminder for anyone with old matches, what the skill levels were at the time those matches were current. Now, I don't fill in that info in the schedule until the match is over. Players get the current skill level info from the standings sheet to determine the spot.
Unless a player went out of his way to record the then current skill levels for each of his matches, which seems very unlikely to me, it would be tedious to figure out what the spot would have been for a weeks old match.