I was having problems with my wife's iBook internal modem. It would only connect successfully about one time in three, even though the connection sounded successful through the speaker. Furthermore, it would often drop connections once it did connect.
Someone gave me the useful tip to try the Apple Internal Modem v.34 script instead of the v.90 script. Apparently, the v.90 standard sometimes will try to push the modem speed faster than the line is capable of handling. If you're having trouble connecting or staying connected, give v.34 a try. Go to System Preferences -> Network, then show Internal Modem, then go to the modem tab. The script is controlled by the "Modem:" pop-up menu at the top.
Since switching to v.34, we've had a successful connection on the first try, every time, and have had no dropped connections. The modem may report a slightly slower speed with v.34, but my understanding is that v.90 reports the initial connection spped and often averages a lower speed than it actually reports, so you're not really losing much.
[robg adds: An older hint (much older!) talks about modifying the stock modem script as another means of improving connectivity.]
Mac OS X Hints
http://hints.macworld.com/article.php?story=2004102510400613