Haines, Alaska is accessible by air, sea, and land:
By Air: Haines Airport (HNS) features regularly-scheduled air service to both Juneau and Skagway. Juneau is accessible from Seattle (on Alaska Airlines or Delta Airlines), with fares starting from $103 one-way or $206 round-trip. For the more adventure-minded, Haines is also accessible by seaplane!
By Sea: Haines is on the Alaska Marine Highway, providing service to Juneau, Skagway, Prince Rupert (BC), Bellingham, Whittier (Anchorage), and other destinations. Service from Bellingham runs weekly, while service to Juneau runs close to daily. The Bellingham terminal of the AMHS is within walking distance of the Bellingham Amtrak station, so you can make the whole trip without driving or flying!
By Road: The Alaska Marine Highway System accepts cars for transport. However, if you want to avoid a long ferry ride you can drive from Seattle to Haines in only 34 hours (entering and exiting Canada) via Skagway, involving a short ferry ride. If you really don't want to take the ferry, the drive is only 35 hours and 1,800 miles from Seattle, covering some of the most magnificent scenery in the world! Depending on your chosen routing, you can enjoy the sights of the Sea-to-Sky Highway from Vancouver to Whistler (notably the shooting area for Gaius Baltar's house in the new Battlestar Galactica), the awe-inspiring Rocky Mountains, and the sights of nothern British Columbia and the southern Yukon.