First move to the brace which opens the block with C-M-u, then
reindent that expression with C-M-q. See Indentation Commands.

I put (c-set-offset 'substatement-open 0) in my
.emacs file but I get an error saying that c-set-offset's
function definition is void. What's wrong?

This means that CC Mode hasn't yet been loaded into your Emacs
session by the time the c-set-offset call is reached, most
likely because CC Mode is being autoloaded. Instead of putting the
c-set-offset line in your top-level .emacs file, put it
in your c-initialization-hook (see CC Hooks), or simply
modify c-offsets-alist directly:

(setq c-offsets-alist '((substatement-open . 0)))

I have an open paren character at column zero inside a comment or
multiline string literal, and it causes the fontification and/or
indentation to go haywire. What gives?

It's due to the ad-hoc rule in (X)Emacs that such open parens always
start defuns (which translates to functions, classes, namespaces or any
other top-level block constructs in the CC Mode languages).
See Left Margin Paren, for details
(See Defuns, in the Emacs 20 manual).

This heuristic is built into the core syntax analysis routines in
(X)Emacs, so it's not really a CC Mode issue. However, in Emacs
21.1 it became possible to turn it off1 and CC Mode does so
there since it's got its own system to keep track of blocks.