If you're dropping often, it's probably more an RF issue, ie. coverage isn't sufficient.
In linux, it's easy to see your levels, use iwconfig when connected to wifi, and look at your Signal Level. It'll be represented as a negative integer, say -50 dBm. The higher the number (remember, this is negative), the better the connection. For instance, Cisco recommends voice coverage isn't lower than -65dBm for voice quality on wifi clients, so I tend to use that as a watermark for good/bad, but usually -40 to -65 is acceptable, anything over -75 means you're too far away, or there is interference to keep the connection.
If your levels are good, and you're still dropping, I'd say look at the drivers and/or other causes. Watching your syslog file at networkmanager output when connecting/disconnecting can be telling.
Also, if you're using 2.4ghz wifi (802.11b/g/n), then you're very susceptible to interference - microwaves, fluorescent ballasts, all sorts of things can cause EMI. Better to use 5ghz, but also less range than 2.4ghz with the higher frequency.
There is a big difference in wifi dongles, usb ones in particular tend to be variably craptastic. This was a good look at testing between different usb dongles as they use them for testing wifi in enterprises I found recently. Long story short, try an Asus usb wifi nic, they seem to test best.
HTH!
-mb