Of course the cron jobs will affect performance in some way. If a cron job takes 8 hours, it's presumably doing something big. But what? Therein lies the question.
If you have several background jobs that compete for resources, they will take longer to complete. For example, if you have an 8-hour job and a 5-hour job taken separately, they may take more than 13 hours if you run them at the same time and they're fighting for the same resource (disk I/O, network bandwidth, RAM, …). Conversely, if they use different resources (e.g. one is CPU-bound, the other is disk-bound), it's possible that they'll both be finished by 8am if you start them at midnight.
So the rule to space out intensive jobs is to allocate resources widely. Figure out what each job needs (disk I/O, network bandwidth, RAM, CPU, …) then work out a schedule so that there is no contention for resources. For example, if you have 4GB of RAM and job #1 requires 2GB, jobs #2 and #3 require 2GB each and normal server operation requires 2GB, then make sure job #1 doesn't run at the same time as jobs #2 and #3, but it's ok to run #2 and #3 simultaneously. You should usually run a single disk-intensive job at a time, unless you have different jobs that hit different disk pools. CPU can be shared with no overhead, just make sure you have some left for front-end operation (nice can help there).