yo te recomendaria mejor usar el JQuery para hacer ese tipo de cosas, el problema es que cada vez que le das click al boton, por tener un runat="server" hace un postback a la pagina, entonces te borra todo y renderiza denuevo y luego carga el div que mandas desde el servidor, por eso piensas que "le cae encima al otro" pero en realidad el mismo postback lo borra.
Puedes usar el JQuery y hacer algo como esto:
En el codigo html de tu pagina pon un boton normal de html (input type="button"...)
y le pones en el onClick un llamado a una funcion que tu crearas, y luego el script quedara algo asi mas o menos:
Código:
var nextinput=0
function AgregarCampos(){
nextinput++;
var divNuevo ='<div id="' + nextinput + '" class="box_1">Lo que le vayas a poner en medio</div>';
$("#dpto_ 1").append(divNuevo);
var tab = document.getElementById("tab");
}
Y si necesitas que tengan un texto mandado a llamar desde el servidor, para eso siempre esta el Ajax para hacer un llamado sin postback y obtener un valor en un campo oculto y de ahi obtener el valor en el script para concatenarselo al div que estas creando.
Espero te sirva, Saludos.