buying tickets
One can actually buy the ticket (at least for Singapore to Thai border-maybe all the way) on the KTM website using a credit card. One gets an e-ticket showing car and seat. Be sure to get a sleeper which is not particularly expensive.
Keep in mind this trick if you want to start in Singapore and not pay the Singapore price. Buy a ticket JB-SIN-final destination which will price in MYR. This cuts the price for all practical purposes in half over Singapore bookings. There is no check to see if you actually boarded in JB.
One must change trains, just check the KTM website and it will show the connections. Do not expect to arrive on time.