There are numerous factors which can cause slow response, and unfortunately most of them are going to be beyond your control. Physical separation can play a big role, ie. the greater the distance to the game server, the slower the ping times. Due to the way ISPs connect to the internet backbone, you may end up going halfway across the country and back just to connect to a server in the next county. You may want to try a traceroute to the server you are trying to connect to. From a DOS command prompt, type:
tracert <Server IP address>
You can find the IP addresses of the servers on the Find Internet Games screen (at the bottom). The traceroute will show you how many "hops" are between you and the game server and the ping times for each of those hops. This will show you where the slowdown is occurring. If it is on the first hop, then call your ISP and ask them why you are getting such slow response.
Another factor is the game server itself. If it doesn't have the bandwidth or horsepower to handle the number of users it is allowing to connect, everyone's ping times will suffer. Each person in a game adds additional traffic to your computer, so try to connect to servers with a smaller number of players.
Something else you can try is removing the IPX/SPX protocol on your machine (be sure that no programs actually need it before you remove it). Each additional protocol you have installed on your computer requires additional overhead and if you don't need IPX/SPX, you should remove it.
I don't know what the typical ping times are for a modem connecting at 45Kb/sec, but I'm guessing that the best you could hope for would be around 300ms. Even with a cable modem, there are only a few servers that I can connect to at less than 150-200ms.
Good luck and hope this helps.