There is only one practical way to get from downtown Bangkok to Koh Samet. Go to the Eastern Bus Terminal located in Ekkamai, Sukhumvit (therefore often just called Ekkamai Bus Terminal) and take a air-con bus to Ban Phe (3 hours, 166 Baht). These buses leave every 1-2 hours from 7:00am to 6:30pm.
They also offer return tickets for 292 Baht that come with a handy time table for the way back. The return ticket is valid for 1 month. They will also offer you the ferry-inclusive package for an additional 100 Baht at 392 Baht. That’s usually what I take as it’s just convenient and I’m flexible for my trip back to Bangkok.
In case you decide to book the tickets individually: Once you reach Ban Phe, walk to the pier – buses will drop you not far from there so you don’t have to get on another Tuk Tuk to reach it. Book your ferry ticket (50 Baht big boat 40 mins / 150 Baht speed boat 10 mins) and make it on the second leg of the trip to Koh Samet.
Note that there is a 200 Baht national park fee for visitors entering the island (Thai people: 20 Baht).
There is a way to get around this kind of scam: From the Koh Samet pier you can simply walk to the beach – 15 mins to Hat Sai Khaew and 20 mins to Ao Phai that’s where most of the hotels are. If you take the Songthaew instead it will only cost 30 Baht for them to drop you off at your hotel but 200m down the road they will stop and an official will collect the so called national park fee from all passengers.