My wife organized a nice weekend for us in Batam, our first visit there. The resort was nice, clean, modern and the staff very friendly. Had a really nice experience at a budget price. I have to comment on the ferry ride though..
Started with signs at the departure hall that read "Please don't queue around the turnstile prior to being called" or something to that effect. There was, of course, about 2 dozen people doing just that. When the turnstyle is opened it's like a bum rush for the boat, the people will literally knock you aside to get past, running as best they can. Most are older people, from 40 to whatever. Once on the boat they smoke, lean on the back of your chair, spit, hack, throw trash on the floor and generally make an awful mess. About 20 minutes from Batam they start queing up again and God help anyone that has an aisle seat since they're sure to be sat on, leaned on and have to dodge phlegm, sneezes, coughs and elbows to the head. My wife and I were the only westerners on the boat... not fair to say these were singaporean people, but they boarded in Singapore, had Singapore passports and sounded like Singaporeans.
I've ridden much, much worse in other countries and see this rush for the good seats all the time, but not the spitting, hacking, and trashing. But.. the price is right and the ship seems dry enough so we'll probably do it again the next time we want a quick cheap get away weekend.
BTW, our destination was Turi Beach Resort, it's halfway through an expansion and remodel. Nice budget resort, the new part is clean and has good views. Very friendly staff and notably good service... only saw a couple of western couples but I'm sure plenty go there. Shopping in the new Mega mall is really cheap but we didn't buy very much so can't say if the quality is the same. Knock off jewelry, handbags and logo wear is abundant. Overall, a nice place and a cheap weekend get away.