What if the program was designed so that when it ran the progress bar it would also send information back to the designer about how long each progress takes, then the designer could use that to update the progress bar weighting next time it is installed?  On average the progress might be more smooth.