você poderia ter um executavel SeuAplicativoUpdate.exe / jar que realiza este download e salva no diretório, assim como acontece com vários aplicativos conhecidos
o usuário ir la no site, olhar as atualizações, e escolher se quer atualizar ou não é incomodo, você poderia por exemplo, perguntar: “Existe uma nova atualização ver.2.5.1 gostaria de ver os detalhes da atualização ?”…
se o usuário clicar em sim, você abre o SeuAplicativoUpdate.exe, mostra os detalhes da atualização e aguarda o usuário clicar em Atualizar ou Cancelar…
o servidor teria os arquivos você coloca um jprogress e vai copiando os arquivos através de uma requisição http, a idéia de copiar arquivo por arquivo é que se o usuário parar a atualização, ele poderá continuar depois, se um erro ocorrer durante a instalação é enviado uma requisição POST com o erro para seu servidor, desta forma você consegue identificar e solucionar os erros que comulmente podem ocorrer, como erro de permissão, pasta não encontrada, proxy bloqueando arquivos etc…