If the card is occasionally connecting, it doesn't necessarily mean its a hardware problem, or module loading problem.
Aside from checking to make sure that the modules are loaded, you will probably want to take a look at the DHCP timeout (perhaps even first, since its a quick fix.) Your wireless setup may be taking long enough to connect that its at the end of the timeout period and so sometimes it'll connect, sometimes it won't.
Since I had a similar type problem, it'll probably be beneficial for you to take a look at this thread:
http://www.linuxquestions.org/questi...oblems-598754/
Look further down the thread for the WPAWAIT information.
Coto