This is, of course, a matter of personal opinion. I would argue that the main location of sex education should be the home or, for those so inclined, the church. Schools do have a role, but it should be limited in certain ways.
I believe that it is a good idea for schools to teach about things like the factual aspects of sex. They should teach about how STDs can be spread. They should provide accurate facts to dispel myths about things like when pregnancy can occur (myths about things like "you can't get pregnant your first time" or that withdrawal is an effective method). (This should, of course, be age appropriate and parents should be able to opt their kids out.)
What they should not be teaching, unless specific parental approval is given, is things like sexual morality. They should not teach things about when it is okay to have sex or not or what sorts of sexual activity are acceptable. These are moral issues that are outside of what schools ought to do. (I am fine with things like role playing about how not to have sex since those can be used in any situation and do not tell kids when it is okay or not okay to have sex.)
The moral aspects of sex need to be left to parents and to churches for those families that are churchgoers. These are matters of opinion and not of fact and therefore should not be left to the schools. That is not to say that parents should stay out of the factual stuff. It makes sense for parents to be the ones who are most in control of their kids' sex education. They should be deciding what their children learn and when because sex is such a personal issue with so many different attitudes surrounding it.
It should begin at home and be reinforced at school.
not at home because some parents can be shy to talk about it and so school is the best way of that topic ;)