It works, Steve - thanks!
Let me make sure I correctly understand the new command syntax.
fix msd all ave/time 1 1 8000 c_msd[4] file msddumpfile
The first ‘1’, Nevery = 1, means LAMMPS takes the coordinates on the 1st timestep following the ‘run’ command as the reference state for the msd calc. The second ‘1’, Nrepeat = 1, means LAMMPS isn’t actually time-averaging here, but always calculates the msd relative to this same reference state, every 8000 timesteps. That’s exactly what the old fix_msd did, what the doc page describes, and is what I wanted, so I’m happy on that score 
But this leads to a followup question. The line on the doc page, “For example, if Nevery=2, Nrepeat=6, and Nfreq=100, then values on timesteps 90,92,94,96,98,100 will be used to compute the final average on timestep 100. Similarly for timesteps 190,192,194,196,198,200 on timestep 200, etc.” is a bit confusing in the context of computes where there is a reference state.
Supposing I put Nevery = 2 and Nrepeat = 6 in the above fix command. Then, the MSD output at step 8000 would be an average over the MSDs at steps 7990, 7992, …, 8000. However, these will all use the same, single reference state (step 0), right?
And the various ‘ave’ options to the fix, ‘one’, ‘running’, and ‘window’, all still use the single reference state, right? In other words, using multiple reference states would require additional computes, right?
Don’t need to do this now, just want to make sure I understand the new syntax. It seems quite powerful!
Thanks,
Rob