At the crucifixion of Christ there were a group of people who witnessed it. They were not there to condemn it or worship him; but rather they just stopped to watch. The act was considered sinful and thus their souls were condemned to be present at every act of human suffering.
Cassie (Christina Ricci) is one of these lost souls and so is the young man Dan (Ioan Gruffudd) she has met. Cassie had just forgotten who she was. When she figures out that a local man named Fred who had been molested by the leaders of the house he lived in as a boy is planning to murder them all and then kill Michael (Harry Forrester) who reminds of himself, Cassie races to stop it, even though Dan tells her it won't do any good.
Cassie is unable to stop the murders of the five men, but finds Michael and his sister and runs off trying to evade Fred but he tracks them down. Though it seems he will kill Michael, his father Simon (Stephen Dillane) intervenes and kills Fred instead. Cassie rejoins her "group" and disappears.
Later, Michael is revisited by Cassie who explains that she was lost for a long time but learned she could have a second chance to do the right thing. She says goodbye to Michael, telling him he will be ok and disappears for good.
The final scene shows the Catholic church ready to bury the relics they found, fearful that will cause people to only focus on fear instead of healthy, happy lives. Cassie's stone image disintegrates shortly before this, signifying God has forgiven her of her sin (for protecting an innocent) and allows her to ascend to heaven.