When looking at the movie 300, most people with a knowledge of history look at it like any other Hollywood history movie such as Gladiator or Kingdom of Heaven and pick it apart with complaints that the Spartan’s never wore leather speedos and the Persians didn’t have war rhinos.
The problem is that 300 is not at all meant to transport a viewer to another time, it is meant to tell a story. Most importantly of all, the movie 300 is intended to be the story as the Spartans of that time would tell it.
For those familiar with the film, huge amounts of the story are narrated by a Spartan soldier who was sent back to Sparta by Leonidas after losing an eye. At the end of the movie we see this soldier finishing his story to thousands of Greek troops at the battle of Plataea.
This character is based off of the historical Spartan Aristodemus, who left Thermopylae with some eye infection and was actually the subject of ridicule until he redeemed himself at Plataea.