This isn't really a question. It's more a "Clean URLs didn't work out of the box for me, but this is how I fixed it" document, in case anyone might find it useful.
So I'm assuming that, in this case, you have pretty much complete control over your HTTP server, Apache. I'm using Apache2 as an example, with the configuration that's given by Debian Sarge.
The first thing: make sure that your .htaccess file is actually being recognized by the server. By default in Debian, the system ignores all .htaccess files.
I changed this by editing the file "/etc/apache2/sites-enabled/default" and adding:
Options Indexes FollowSymLinks MultiViews
AllowOverride All
Order allow,deny
allow from all
where cs445 is the subdirectory where my Drupal lives in.
The most important line is the "AllowOverride All" line, because that permits the .htaccess file to modify the way the server works. (I know that putting "all" is kind of risky, so if anyone can suggest something better, please do).
The file you edit is different under Fedora and other distros, but the general point is that you have to change the AllowOverride directive in the directory where Drupal lives.
That will probably fix most people's memory and PHP config problems as well.
While you're at it, check that the rewrite module is being loaded. Use the a2enmod command in Debian to enable the "rewrite" module. I think it's enabled by default, but these things are prone to change. In Fedora and other distributions, the line to add rewrite support should look something like (but probably not exactly): LoadModule rewrite_module /usr/lib/apache2/modules/mod_rewrite.so. That should appear somewhere in your configuration files.