It is quite true that the router and its interaction with the wireless device and driver are crucial.
I would be certain that the firmware for your router is fully updated. Often, bugs are discovered and corrected and the fix will only appear if you update the firmware to the latest available.
Second, I suggest that you disable power saving in Network Manager. From the terminal:
sudo sed -i 's/3/2/' /etc/NetworkManager/conf.d/*
Next, check the settings in the router. WPA2-AES is preferred; not any WPA and WPA2 mixed mode and certainly not TKIP. Second, if your router is capable of N speeds, you may have better connectivity with a channel width of 20 MHz in the 2.4 GHz band instead of automatic 20/40 MHz, although it is likely to affect N speeds. I also have better luck with a fixed channel, either 1, 6 or 11, rather than automatic channel selection. Also, be certain the router is not set to use N speeds only; auto B, G and N is preferred. After making these changes, reboot the router.
Next, I recommend that your regulatory domain be set explicitly. Check yours:
sudo iw reg get
If you get 00, that is a one-size-maybe-fits-all setting. Find yours here: http://en.wikipedia.org/wiki/ISO_3166-1_alpha-2 Then set it temporarily:
sudo iw reg set IS
Of course, substitute your country code if not Iceland. Set it permanently:
gksudo gedit /etc/default/crda
Use nano or kate or leafpad if you don't have the text editor gedit.
Change the last line to read:
Proofread carefully, save and close the text editor.
Next, I'd set IPv6 to Ignore in Network Manager: http://docs.fedoraproject.org/en-US/Fedora/18/html/Installation_Guide/images/netconfig/network-connections-ipv6-ignore.png This example is for ethernet, but you want wireless.