Crystal runs at the lowest possible locking level, read uncommitted. So from a locking perspective, it shouldn't lock anyone out.
Is the data source a stored procedure? You can make sure in a stored proc that you're running with the lowest possible locking level by putting this command at the top of the proc:
SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
Or the report could be exhausting some other db resource.