How can I prepare CS majors for non-programming jobs? I teach at a 4-year liberal arts college near Silicon Valley. Our stronger grads are able to get programming jobs straight out of college. In addition to preparing them well academically, I've worked as a software engineer and, while in industry, interviewed software engineering candidates, so I can coach students on interview skills.

Not every CS major is a strong programmer, at least at that stage of their life. What other good jobs can I suggest to students who aren't great at or don't enjoy programming, and how can I prepare them for these jobs? FWIW, many of our students have strong writing and interpersonal skills.
Sci/Tech journalism
There's a common complaint that people in science journalism, who may have journalism or English academic backgrounds, are okay at writing but vastly underinformed about the computers (or physics, or chemistry, or other subject matter) they're writing about. I've seen it firsthand, and while there are of course exceptions, the complaint is justified in many cases. Your students would have a big advantage in this field because of their technical backgrounds, especially since you mention writing and interpersonal skills. Some basic journalism and psychology coursework might be handy, in my opinion.

Tech writing
Also in the writing category, there's the field known simply as technical writing. Technical writers often deal with creating documentation or manuals but may work on any specialized, um, writing that is technical. In my experience, these people often have either English backgrounds, with most of the rest having technical backgrounds, and whichever one you have, you're perceived as not having enough of the other. There's no running around and interviewing strangers as there is with journalism, so brushing up on writing skills on paper is the first thing I'd recommend here.

Requirements engineering
Adjacent to that is requirements engineering. Reqs engineers are on technical teams and work with programmers but don't do any coding themselves. They think bigger-picture about what the needs of systems will be, communicating with customers and developers and other relevant people (I suppose I should say "stakeholders" but that feels so business jargon) to figure out what a project should do, what it reasonably can do, and how it should do those things (and also, what it shouldn't do).

I haven't often seen requirements discussed at the undergrad level, but they're also not full-on graduate programs. Not that I think you're looking to recommend grad school here anyways. If finding and taking the one graduate requirements course isn't an option, I'm not sure what I could recommend to prepare for this one. Having a CS background will be a huge advantage, and I would almost say necessity, for such a position, though.

Evangelism
An answer that may be a bit more specific to your students specifically, based on your description of your school and your other activity on this site: evangelism. You don't need to be sitting in front of a computer writing code to care about the pipeline problem. The main issue with this answer is that there don't seem to be many places where you can get paid to work on this. Organizations that deal with diversity issues tend to be non-profits that lean heavily on volunteers.