Yo particularmente no encuentro una solución a ese problema sin tener que recurrir a un cambio en el maquetado html, que es lo que no deseas.
Con mi consejo no necesitás cambiar nada más que el CSS (que supongo que lo tienes en un archivo externo) y agregar unas líneas a cada archivo que puede hacerse masivamente.
Podés dejar esa estructura que tenés ahora sin problemas, sólo utilizarías el contenedor más general (en tu caso
caja250) a la cual le aplicaría el script que mencioné y las propiedades CSS para el borde.
Sin recurrir a esa solución, lo único que se me ocurre es utilizar tablas o bien algo como:
<div class="top"></div>
<div class="contenido"></div>
<div class"bottom"></div>
para cada caja, donde top y bottom tendrían una imagen como esta acá:
Código:
http://www.generateit.net/rounded-corner/rounded.php?sh=s&r=60&bw=20&bc=000000&bg=FF0000&fg=999999&w=300&f=png&aa=1&si=b&bgt=1&bt=&fgt=&tc=FFFFFF
. Que necesita ser de un ancho fijo. De esta forma los contendores no se superponen. Es lo único que se me ocurre, pero ninguna es una solución rápida como vos querés. Es importante que siempre tengas en cuenta que pueden surgir problemas así y utilizar siempre maquetado html limpio y reglas CSS externas a todos los archivos.