A good DSL provider will guarantee 80% of your contracted speed. Unfortunately a lot of residential services don't. Earthlink apparently considers it all good if you only get 500Kbps on a 1.5Mbps rated line (and you pay the same amount as someone getting 1.5M throughput). If your contract does not explicitly state that you will get a minimum throughput, then you're SOL. The wording of a contract or whatever you may have signed is likely such that by providing you a line and setting their equipment to attempt a full 768Kbps/128Kbps connection, they've fulfilled their requirements, whether you can actually maintain those speeds or not.
However. There are multiple types of ADSL service. Standard ADSL means they set the DSLAM port to a specific speed, like 768/128. The DSLAM has to get sync with your DSL modem (or the built-in modem of a router). If the signal quality is too low, or there is interference, you will fail to sync and not get any sort of connection. Rate-adaptive DSL allows the DSLAM or DSL modem to automatically modulate the speed settings based on line quality. If it can't maintain a connection at 768/128, it will attempt the next lowest speed, such as 512/128, then 384/128 (128 being such a low speed, the quality can be quite bad before it can't be maintained). The speed change happens at a regular rate, depending on changing line conditions. This can be useful if storms or other things cause temporary interference, since it stops you from entirely losing your connection.
If they installed RADSL, but did not state anything about varying speeds in the contract, and the contract states they've supplied a 768/128 line, then you've got something to complain about.
The first thing to do is test transfer rates to your ISP's own FTP/web servers. An ISP will actually only guarantee that you'll be able to get the full bandwidth on the line itself, between your modem and the DSLAM. If you can't get full bandwidth to a site, they can't necessarily do anything about that. However they will usually consider it an issue if you're unable to get full speed to one of their own servers on their own network.
Speakeasy's site tests are also quite good I've found, better than most other download test sites. The local one for me would be
Boston, but they also have links to their other sites. Speakeasy's servers have multiple connections to backbones, so they have good bandwidth available.
You can ask your ISP to verify the provisioning of your DSL line as 768k/128k. It is possible that it was accidentally set to something lower. You can also ask specifically whether you have rate-adaptive DSL. Keep in mind that while your ISP may have their equipment set up to allow you transfers at those speeds, they also need to verify whether the DSL provider has it set properly in the DSLAM (something that the ISP can often check using the DSL provider's online support tools; you might even be able to verify and test it yourself at the DSL provider's site). Most ISP's do not directly provide DSL service, they resell service from another company like Covad. The telephone company DSL services however are naturally part of the same company, but are different divisions.
Varying speeds of DSL are provided based on distance. You can see what distance you are from the nearest central office by going to a site like Covad.com or speakeasy.net and using their availability lookup tool. It is not uncommon for a DSL provider to set up and allow the provisioning of a DSL line that is faster than it should be given the distance a person is from the CO (because it means more money coming from the user).