Regarding your first question, that would be called "path finding," which is a standard topic in game programming, but one I have little background in to date. I think there are some posts about it in the How-to forum.
Regarding "smooth turns," I assume you mean more of a sweeping turn? Not so sharp? If you are using way-points, it would be a matter of setting up more way-points at the corners. It would require some experimentation.