Simply put, Brandon Routh completely lacked the charisma required to play Clark Kent AKA Superman. Routh was the first actor to follow Christopher Reeve in the role on the big screen - a hard act to follow, given that Reeve's version is one of Hollywood's truly iconic performances of any character - and he just couldn't live up to the Superman name. It was a very average, very vanilla performance and it led some people to believe that Routh had been cast simply for the fact that he slightly resembled Reeve in terms of his appearance (which sort of made sense, given that the movie was meant to serve as a kind of homage sequel to the Reeve movies) and not because he had the acting chops to take on such a huge role. The film, as a whole, wasn't as bad as a lot of people made out - Kevin Spacey's Lex Luthor was great and the rest of the cast was more than acceptable - it's just that the very raw Routh, who had only appeared in small roles in two films prior to getting the Superman job, simply wasn't ready for it.