Bueno, potencialmente no veo error en el script. Cosas para comentar:
El incluir esas comillas no debería influir en el resultado, deberia ser igual:
Código PHP:
$datos = mysql_query("SELECT * FROM `$nombre_tabla`")
que
Código PHP:
$datos = mysql_query("SELECT * FROM $nombre_tabla")
Segundo que todo, es extremadamente peligroso que el nombre de una tabla llegue a una consulta ya bien sea por GET o por POST porque un usuario malicioso puede llegar a cambiar el valor de este dato y generar ferias y fiestas. Yo replanteria por completo la manera como lo estas ejecutando.
Cita: lo curioso es que cuando lo hago inicialmente me hace la consulta, pero al pasar los datos por otros formularios (claro esta que sin modificar el nombre)este me saca ese error
Es posible que estes perdiendo el valor por no guardarlo con una variable de sesión o pasandolo como un valor oculto a otro lado y por tanto pierdes el dato. De igual forma
bajo ninguna circunstancia yo pasaria como parametro en un formulario el nombre de la tabla de consulta.
Si por el contrario te esta llegando bien el nombre el error si es muy raro. Esas son mis observaciones. Si alguien mas quiere opinar me interesa su opinión, especialmente el hecho de pasar los nombres de las tablas de datos cosa que me parece potencialmente peligroso.
p.s. Si tienes que hacer una consulta de las tablas y tienes que pasar ese dato por otros formularios tendrias que hacerlo por campos ocultos de los formularios siempre para no perder el dato. Como ves salvo que fuera el id de una consulta no es muy practico a la hora de implementarlo. show tables se usa mas para labores de tipo administrativo de la base de datos que para usar ese dato en una consulta.