Just how much is a query supposed to slow down the whole system?
Complicated joins can be a precursor to temp table usage. By default, tmp_table_size is set to whatever the value max_heap_table_size is (16M).
For any given query, once a tmp table reaches 16M in RAM, it performs the following migration

the query suspends operation
mysqld will migrate the entire 16M of tmp table data onto disk as a MyISAM table
the query continues until completion

You must also keep in mind where the disk-based tmp tables will land. By default, the folder where disk-based tmp tables will land in defined in tmpdir.

For Windows, this would be C:\TEMP or C:\TMP (environment variable TEMP or TMP)
For Linux, this would be /tmp

If the mysqld is competing for tmpdir usage with the OS, your should feel it rather quickly because the OS would start swapping to find the elbow room in needs in the system temp folder while the query in question might be trying to force a tmp table into the same OS tmp space.
You may want to look into one or more of the following

mounting /tmp to a RAM disk
mounting /tmp to another disk away fromthe root partition
setting tmp_table_size and max_heap_table_size to 2K (that's not a typo, I SAID 2K) to force tmp tables to goto tmpdir quickly, thus shortening tmp table memory-to-disk migration time
I wrote about this in StackOverflow

UPDATE 2012-03-13 15:11 EDT
Setting tmp_table_size and max_heap_table_size to 512M is dangerously high. In the event of bad queries (especially the Cross Join (aka Caretsian Join)), mysqld will spend time migrating a 512M MEMORY table to a disk-based MyISAM table before the query continues processing. You may need to lower that number significantly to force tmp tables into disk faster. This is imperative since tmp_table_size and max_heap_table_size are set per DB Connection.