The reason no one can connect to the database while the dump is in progress has to do with mysqldump taking large locks on your tables. So any transaction trying to take place sleeps until the lock is released. You could tell mysqldump to not acquire locks using the following flags / switches:
mysqldump -u root --skip-add-locks --skip-lock-tables dbname
The above will not cause new connections to stall but it will not generate consistent backups due to concurrency issues. The clean way to take backups without messing with locking is to do what Lightwave suggested. Replicate your current database (master) to another mysql instance (slave). Then point your backup scripts at the slave database instead of the master. The slave database can be locked and it won't affect the availability of your current websites / database.
Here's an intro on replication: http://dev.mysql.com/doc/refman/5.0/en/replication.html