Another idea you might try is to see if you can place your computers IP address into the DMZ zone of the router. This will put your computer outside of your firewall and bypass the normal router functions. test the speed after you have done that. (choose one of the speed sites, and just stick with that. speed can vary from site to site becuase of hte number of hops that your packet will have to travel through. if there are only a few number of hops, and you aren't losing a lot of ms because of it, then it will be more realistic. you can find the # of hops your packet travels to that site by opening up a dos window and typing :> ping xxx.xxx.xxx.xxx which is the ip address of the speed site that you are using. this will give you the relative "internet distance" that your info (packet) has to travel.)
afterwards disable the DMZ function, which will put your computer behind the firewall again, and then re-test the speed.
if there is a significant difference in speed, your router could have one of the filtering features on (although it shouldn't be that drastic of a speed difference). what you should do is take a look at all the router settings, and turn off any sort of filtering, and then repeat the test. if you can do a complete factory reset of the router, that would be better. usually there is a reset button somewhere on the back of the router than you can press while you power it up, which should put all the settings back to factory.
if there isn't a speed difference after you have tried the DMZ, well then.... i'm not exactly sure. if you have tried the same internet speed test site with both the router connected, as well as not connected (on the same computer also), then i would think that there is something defective with the router. still have the receipt?