Ahora, en Windows NT, 2000 y más recientes, los *.bat son reemplazados por *.cmd, que son mas o menos lo mismo.
Los BAT son muy útiles para automatizar procesos repetitivos o para hacer procesamiento de archivos masivo. Se pueden controlar ciclos, esperar entradas del usuario, etc...Recuerdo hace mucho tiempo que Norton tenía unas utilidades para hacer interfaces gráficas desde DOS, creo que se llamaba be o algo así (quién se acuerda?).
Por ejemplo, cuando se está desarrollando en Java, muchas veces se tiene la necesidad de correr un conjunto de pruebas, crear unos directorios, instalar la aplicación y poner a correr el programa. Para automatizar estos pasos, que son siempre repetitivos, entre otras cosas puedes utilizar un BAT.