The one thing I've learned is don't force it. Be patient and wait for the right time to make suggestions. It very much depends on your team's attitude towards change. This is more like fishing than hunting. But, even when they are willing to change it's still extremely hard to teach an old dog new tricks.
I think it's important to get in there and do it their way for a while. This gives you time to build trust and it gives you time to get to know who might be with you and who is going to be against you. You might find out if this has been tried before, and what happened. "Hey have you guys tried unit testing?" "Yea John Barleycorn, he used to work here, tried that. Steve ran him off. Great guy though." Those kinds of exchanges might help you define how long you going to try this experiment.
During this period, carefully note things you see you want to change. I suggest keeping a written record. The key part here is to build trust between you and fellow team members. So they recognize you as someone who knows what you're talking about. Then when they know you start making small suggestions on things that could be improved.
Go for small wins. Don't try and convert them away from using Singletons over night that's too big a battle, adopt unit testing across the code base, way too big. Stay away from things that require huge refactorings. If you suggest it don't be surprised when you're the only one doing the heavy lifting. Try things like cruise control if they aren't doing continuous integration, clean up the build process, or small refactorings that remove duplication.
If they are willing to make some changes then education might help, but you run the risk of coming off as being the know-it-all and alienating yourself. I think it's best to approach it as if the topic you want to discuss is pure academic interest unrelated to the team's work. Sort of like "Let's get together over lunch and just talk about interesting topics." Prepare a topic, and do a presentation. Pitch it as no one has to commit to it we're just learning about new things. Then see what the group's reaction is to that. Encourage discussion, and see if they talk about it outside of the meeting. If someone initiates another discussion with you that could be a good sign. It also could mean someone is a control freak and finds your ideas harmful to their own ideas. You just have to gauge the discussion that follows. If it's positive reaction then you might be able to win some people over.
Having people like you goes way further than knowing more than them. Just think about the best salesmen you know. I bet you liked him before you liked his product. Your a salesmen.
Then if all of that fails you have two choices. Wait till the lead moves on, and you can take their spot. Leads have powerful sway over the attitudes of the team, and what teams are willing to do and not do. Or get out of there and find a team that you find more suits your attitude.