Your home broadband, typically ADSL or cable modem access, usually has a different speed for downloading and uploading respectively. Typically you will have a downlink speed in the range of 512 kbit/s up to 8 Mbit/s and an uplink speed substantially lower than that, often 128 kbit/s to 1 Mbit/s. However, even when downloading things from the Internet, traffic flows in both directions, because the protocol that is used to transfer the data uses acknowledgments to make sure that the data has been transferred properly. Since your download speed is substantially higher than your upload speed, in a lot of cases you will not be able to use your full download speed if you are uploading data at the same time.
Your Internet service provider will often quote the speed of your home broadband as being "up to" a certain speed. There is a reason for that. Let's say you have a home broadband connection of up to 2 Mbit/s in download speed and up to 512 kbit/s in upload speed. Does this mean that you are always guaranteed to get that bandwidth for your transfers?
Definitely not! In fact, all Internet service providers sell much more bandwidth than they can actually deliver. If all the customers of a service provider would try to use their connection to download at the same time, the average bandwidth would be much lower than the maximum value given. In fact, it is not uncommon to sell 50 times more bandwidth than they can actually deliver.
Does this mean that they are tricking you? It certainly sounds so, but this is a practice that has been used a long time, even in telephony networks or cell phone networks. If everyone in the world tried to use their telephone at the same time, it simply would not work. But that just doesn't happen, most people only use the telephone occasionally.
The same thing applies to your home broadband. Most customers in your service providers network only use their home broadband occasionally. Some users fill up their broadband all the time, and there are those that rarely use it at all. But on average, the usage is quite low compared to the maximum possible. For instance, when you're surfing on a web site, you spend most of the time reading the pages. Also, most people only spend a fraction of their day in front of their computer at home.
If the service provider was going to guarantee that you could always get your maximum bandwidth, your home broadband would be much more expensive. The service provider would have to make sure that you had dedicated bandwidth for your usage only. This would be a waste, and cost much more than most people are willing to pay.
Instead, service providers carefully monitor the bandwidth usage in a network, to make sure that connections are not overloaded. Some low quality service providers will overload their connections more, and give you a lower average bandwidth.
Service providers also use the same over provisioning for business customers, but the "over provisioning factor" tends to be much lower. This is not surprising, because a business connection is used by many people so on average these connections will be more utilized than a home broadband connection. Furthermore, a business customer generally pays more for the same bandwidth, so the service provider can afford to give a higher quality to these customers.