I would do this with two mutually recursive functions:
(define (list-next? ls)
(cond ((null? ls) #t)
((list? (car ls))
(atom-next? (cdr ls)))
(#t #f)))
(define (atom-next? ls)
(cond ((null? ls) #t)
((atom? (car ls))
(list-next? (cdr ls)))
(#t #f)))
(define (alternating? ls)
(cond ((null? ls) #t)
((list? (car ls))
(atom-next? (cdr ls)))
(#t (list-next? (cdr ls)))))
I am unsure if Scheme has the atom? function built in, you might need to define it as
(define (atom? thing)
(not (list? thing)))
Note that being a pair and being a list are two different things: not all pairs are also lists. Lists are pair chains that are terminated by the empty list. If you actually meant pairs, not lists, you will need to replace "list?" with "pair?" in the above.
"Structure and Interpretation of Computer Programs" is a nice, free book to learn Scheme, and a lot of Computer Science along the way.
Disclaimer: all code here is untested, no warranty.
Finally, please don't let the parentheses dangle around.