An uplink cognitive radio system with a single primary user (PU) and multiple secondary users (SUs) is considered. The SUs have an individual average delay constraint and an aggregate average interference constraint to the PU. If the interference channels between the SUs and the PU are statistically different due to the different physical locations of the SUs, the SUs will experience different delay performances. This is because SUs located closer to the PU transmit with lower power levels. A dynamic scheduling-and- power-allocation policy that uses the dynamic programming, is proposed. The proposed policy can provide the required average delay guarantees to all SUs irrespective of their location as well as protect the PU from harmful interference. The policy is shown to be asymptotically delay optimal in the light traffic regime. Motivated, by the high complexity of the dynamic programming algorithm in the optimal policy we exploit the structure of the problem's solution to present an alternative suboptimal policy. Through simulations we show that in both light and heavy traffic regimes, the delay performance of the suboptimal policy is within 0.3% from the optimal policy and both outperforming existing methods.