Actually if there is a passport/visa office in your area, that may be the most desirable way to go. You have to turn over your passport for the processing and finding someone local will save some shipping cost.
Sams is always my recommendation for accessing information because they have the most user friendly site I've found for getting to the required info you need to get started. They've also been very helpful in getting emergency situations handled for me quickly when I have clients who can't find their passport near the sailing time and other similar things. I've never had them let me down in a pinch.
ZVS is the one most of the cruiselines refer you to, I'm not sure what the affiliation is but their site is dificult to navigate and hard to find what you're looking for. That's probably where your friend got that contact.
A tourist visa is a single entry visa and there is no other option with out a business trip that includes dealing with a Vietnam business as a sponsor. The Vietnam visa can be extended after arrival in Vietnam at the Vietnam Immigration Service for up to 21 days. that wouldn't be necessary unless the ship had mechanical issues at port or soemthing similar. I've neve had anyone have the experience you described with dificulties from illness or other reasons.