Te pueden servir las ideas de los 3 ultimos artículos de mi blog:
http://solucionesvulcano.com/blog/blog.html
El tema de distribucion fisica es relativamente simple. Se hace con paquetes o plugins o dll o ActiveX o Servicios Web, dependiendo de lo que este de moda
Pero mas critico es la separacion logica y de codigo...
Para empezar, seriamente hablando, debes empezar por montar un software de control de codigo como Subversion y hacer unit testing. Sin eso, es demasiado dificil lograrlo.