Por que la única condición que pones es que la variable $_POST["curs"] exista y eso se cumple en todas las iteraciones. Debes además comparar si el curso que se está imprimiendo es igual al recogido por $_POST
Te pongo un planteamiento
Código:
while(condicion){
$seleccionado = (isset($_POST["curs"]) and $_POST["curs"] == $row['nombre_curso']) ? ' selected ="selected"' : "";
echo "<option $seleccionado value=\"".$row["nombre_curso"]. "\">" . $row['nombre_curso'] ."</option>\n";
}
Si no lo entiendes dímelo y te lo explico, aunque creo que se entiende a simple vista