I forgot to answer the second part of your question. Driving directions are a direct output of Network Analyst. For this to work properly, you have to make sure that all your streets have a name. Which means you street layer has a string attribute for all features.
However, users have problem getting directions via a roundabout. But I think it is possible to workaround this problem with a slight coding logic. I have not done it myself, but I feel it is very much possible. For basic use, the driving directions that come as a result from network analyst are good enough.