Let there be a set M of m parallel machines and a set J of n jobs, where each job j takes pi,j time units on machine Mi. In makespan minimization the goal is to schedule each job non-preemptively on a machine such that the length of the schedule, the makespan, is minimum. We investigate a generalization of makespan minimization on unrelated parallel machines (R||Cmax) where J is partitioned into b bags B=(B1,…,Bb), and no two jobs belonging to the same bag can be scheduled on the same machine. First we present a simple b-approximation algorithm for R||Cmax with bags (R|bag|Cmax). We also give a polynomial-time approximation scheme (PTAS) for R|bag|Cmax with machine types where both the number of machine types and bags are constant; two machines Mi and Mi′ have the same machine type if pi,j=pi′,j for all j∈J. This result infers the existence of a PTAS for uniform parallel machines (Q|bag|Cmax) when the number of machine speeds and number of bags are both constant. Then, we present a b/2-approximation algorithm for the graph balancing problem with b≥2 bags; the approximation ratio is tight for b=3, unless P=NP, and this algorithm solves the graph balancing problem with b=2 bags in polynomial time. In addition, we present a polynomial-time algorithm for the restricted assignment problem on uniform parallel machines with bags when all the jobs have unit length. To complement our algorithmic results, we show that when the jobs have lengths 1 or 2 it is NP-hard to approximate the optimum makespan within a factor smaller than 3/2 for both the restricted assignment and graph balancing problems with b=2 bags and b=3 bags, respectively. We also prove that Q|bag|Cmax with b=2 bags is strongly NP-hard.