It happens because the data can't come through your phone line quickly enough.
Run a ping test here:
http://www.pingtest.net/
If you don't get an 'A' or 'B' grade get your telephone provider to check the quality of your line.
Then run a speed test here:
http://www.speedtest.net/
(Click on 'Begin Test: Recommended Server')
You're seeking a download speed of at least 2Mbps (which I'd consider the lowest figure for really reliable streaming). If you're not getting that, start by checking that everything is optimised at your end. (i.e. your router should be plugged directly into the phone socket, not connected via an extension. Your computer shouldn't be too far away from the router). Then try the test again when not many people will be using the internet (e.g. at 6am). If you only get poor performance when the internet is busy it suggests that your ISP has got a lousy 'contention ratio' (i.e. the number of people who are effectively sharing a common feed from the internet). Many budget ISPs have a contention ratio of 20 or worse. You ought to be looking for an ISP which provides a ratio of 10 or less.
If you always get low speeds, at any time of day, you should complain to your telephone provider.
Chris