Hello,
I have had great difficulty with the ubuntu supplied iwl3945 drivers. On a whim I downloaded the more recent version from:

http://linuxwireless.org/en/users/Download

and it works very well indeed.
you will need to ensure that the correct linux-header package is installed.