Stupid question: is there any reason why a separate csprogs.dat is even needed at all? Could csqc functionality not be included in a standard progs.dat which is accessible in SP games via an extern, and in MP by calling PR_LoadProgs?
I may be missing something obvious here, but I'm thinking that this approach would make wider implementation much easier for everyone.