prueba con esto
Código PHP:
$sql = 'CREATE TABLE '.$_POST['modulo'].'(
DNI int(12) NOT NULL ,
nota tinyint(4) NOT NULL ,
recuperatorio tinyint (4) ,
PRIMARY KEY (DNI)
) TYPE=MyISAM';
mysql_query($sql, $link2);
en estos casos la concatenacion es importante.
explicación rapida, cuando usas las comillas simples php toma literalmente el texto a diferencia de las comillas dobles que si es una variable a cambia,
ejemplo:
$sql='consulta';
echo 'esto es una $sql'; el resultado de esto será --> esto es una $sql
a diferencia de esto
echo "esto es una $sql"; el resultado será --> esto es una consulta
otra cosa, para esto 'CREATE TABLE $_POST['modulo'] (.....MyISAM'
php interpreta que comienza un texto cuando usas ' o " y termina donde encuentre su similar, para esta consulta php lo dividia en 2('CREATE TABLE $_POST[' y '] (.....MyISAM') y la palabra modulo no sabia como utilizarla ya que no encontraba los puntos para la concatenacion. espero que con esto te de una idea mas clara del uso.
saludos.