I've just spent some time working out why some users are unable to access a course which others can, although both users are assigned through membership of the same organisation in a program.
It turns out that someone had inadvertently set the (single) set to require completion of any one course. Users who have completed one course have completed the program and now cannot access any other course. This appears to be the cause; is it expected behaviour?
We have now reset the program's settings so that all courses are required, but still these users see the program is complete and they cannot access courses. I hope that cron will fix it tonight, but if not ... is there a way? Perhaps removing and reassigning the organisation to the program?