Let’s get you to Juneau first. To get to Juneau from most everywhere, you have to fly. If you are coming from the south (the lower 48), from most of Canada or from anywhere else in Alaska, except the Southeast, you have to fly into Juneau. From the US or Canada, flying to Seattle then on to Juneau is your best bet. Both Delta and Alaska Airlines fly from Seattle into Juneau.
From Juneau to Haines, there are choices:
FASTEST: Fly. The non-stop flights on Alaska Seaplanes (they land on the ground) take about 25 minutes. The airlines have regularly scheduled flights, but, depending on your time of arrival in Juneau, you may have to wait until the next day. If so, and you don’t want to spend the night in Juneau, check the ferry schedule.
FAST: Alaska Marine Highways operates ferries from Juneau to Haines. The one-way trip is about $50 and generally runs nearly everyday. During the summer, Fjordland Fast Ferries operate from Juneau and Skagway and cuts the travel time nearly in half.
SLOW: Skip flying to Juneau and take the ferry from Bellingham, WA. Alaska Marine Highways runs a weekly ferry from Bellingham to Haines that takes 3.5 days. The ferry has cabins and dining. It calls at Vancouver and Juneau as well as several small Alaska ports via the Inside Passage and is a fantastic way to see this amazingly beautiful part of our continent.