In the case of synchronet/ctrl/*; debian packaging does have the idea of a conffile (configuration file), which is treated differently by the package installer. If a list of such files is provided in the package, the installer checks them before running the postinst script: "If neither the user nor the package maintainer has changed the file, it is left alone. If one or the other has changed their version, then the changed version is preferred".
Now, up until now I've been thinking to avoid the whole issue by installing ctrl/* to /usr/share/synchronet/ctrl & using a copy of that at (now) /opt/synchronet/ctrl (because of the number of files in ctrl/*, & also because I wasn't using a default installation directory); initiially by advising to do a manual copy, later by doing it in the postinst script. But if the postinst script handles the copy, there still needs to be a way to determine if a config file needs to be copied or not; and if that is going to be done in an automated way, may as well take advantage of the existing automated handling of such files... (I still like the idea of having unaltered copies available as a reference, but that can be taken care of by putting them in an examples directory.)
Change to using /opt/synchronet/ctrl as the default ctrl/* directory. (r119)