"Up to 8Mb" is their blanket term covering all ADSL connections. When ADSL is enabled on your line, the exchange tries to work out the most stable rate for your line conditions. Therefore, if the line is noisy, then it will reduce the speed until the connection is more stable. If you're on a new line or live next door to the exchange, you'll be seeing higher speeds. If you're at the end of the line and far away from the exchange then you'll be seeing lower speeds.
That said, 0.5Mb is abysmally slow and I would be kicking up a fuss about it. It is possible for the exchange to set the speed too low if something went wrong during the learning period or if there has been a fault on the line since (or even BT doing maintenance), and the exchange hasn't pushed the speed back up again.
Your internet provider can request that BT tells the exchange to "re-learn" your line which should improve things. They can even ask BT to manually set the line speed (0.5Mb, 1Mb, 2Mb etc), however this may not guarantee a stable connection as the amount of errors at a set speed may actually reduce the speed overall! However, a lot of tech support people at ISPs have no idea of this and will tell you that what you're experiencing is perfectly normal when it actually isn't.
So it depends a lot on your ISP. You can't talk to BT Wholesale/OpenReach, the departments within BT that deal with selling and supporting the actual line and exchange, so they have to do it for you.
I'm with PlusNet who have tech support guys who know what they're talking about and as they're owned by BT, things usually get done!
What ISP are you on, and how far are you from your exchange? You can find out the latter by going to
SamKnows, punching in your phone number then "Check", then clicking "BT ADSL" which will give you the name of your local exchange and the rate your line should support. Click on the name of the exchange for further details and a map so you can see how far you are.