I just (finally) got an apartment in SG, and ordered cable service from Starhub (just internet, nothing else). I started off with the 2Mb/s minimum plan (Surflite) to see what it's like. The Motorola Surfboard modem you get defaults to 192.168.100.1 and has a basic diagnostic screen via http (annoyingly, the modem closes connections to http://192.168.100.1 when it's online, so you don't get the negotiated connection speed).

From me (218.186.12.33) to my colo(haller.ws), I get 219KB/s peak (155 KB/s sustained) when wget'ing from port 80, and 30 KB/s peak (28 KB/s sustained) when ssh'ing, so they're doing some traffic-shaping. port 8080, 443, 110, 143 are also slow-shaped. However, they seem to just track individual streams, so aggregating multiple tcp streams looks like a good workaround(~5 x 30 KB/s seems appropriate). After observing for a couple days, I see higher speeds for non-tcp-80 traffic after midnight, so starhub appears to bucket us slow people at some point (most likely their border) with either a total shared bandwidth meter, or a time-of-day meter.

As you can see below, they use RFC1918 space, which means that TCP MSS detection is probably going to fail so you'll always pay 40B/1500B in TCP overhead as you won't be able to send jumbo ethernet frames (maybe they fix this for people connected to their premium network, as they ship a different modem for that).

traceroute to raq1.haller.ws (66.150.227.79), 30 hops max, 40 byte packets
 1  cm1.omega28.maxonline.com.sg (218.186.28.1)  10.544 ms
 2  172.20.13.1 (172.20.13.1)  9.944 ms                                     # rfc1918 implies TCP MSS clamping... 
 3  172.26.13.1 (172.26.13.1)  11.645 ms
 4  172.20.7.26 (172.20.7.26)  26.167 ms
 5  172.20.7.50 (172.20.7.50)  22.065 ms
 6  203.117.34.105 (203.117.34.105)  11.492 ms                              # whois says these two belong to starhub
 7  203.117.34.6 (203.117.34.6)  16.597 ms
 8  cr1-paix-peer.pao002.internap.net (198.32.176.48)  198.072 ms           # big jump across the pacific puddle
 9  cr2.sje007.inappnet.cr1.pao002.internap.net (66.79.146.122)  305.303 ms # another big jump? wtf?
10  cr1-cr2.sje007.internap.net (66.79.146.189)  285.944 ms
11  nym009-sje007-1077-cr1.nym009.pnap.internap.net (66.79.146.117)  282.992 ms
12  nym008-nym009-82-core3.nym008.internap.net (66.79.152.130)  277.037 ms
13  border2.po1-20g-bbnet1.nym008.pnap.net (216.52.95.3)  277.928 ms
14  core5.ge2-8.phi-nym008.phi.pnap.net (216.52.93.94)  276.360 ms
15  border5.ge6-1-bbnet2.phi.pnap.net (216.52.64.80)  324.983 ms
16  *
17  vz41.tektonic.net (66.150.224.2)  307.014 ms
18  raq1.haller.ws (66.150.227.79)  294.649 ms