There are two ways you can join a list in DIGEST mode atomically with
LISTSERV. The first is to use the SUBSCRIBE WITH command:
SUBSCRIBE XYZ-L WITH DIGEST
This function combines SUBSCRIBE and SET in a single command. It was
originally implemented to provide a simple, convenient atomic transaction
for customers who interface LISTSERV to a database, and to simplify the
implementation of the GUI and WWW interface, rather than to save one
command for human users, but now that you mention it, it would also be
very convenient in cases where there is no clear consensus as to what the
default option should be. This gives you two simple commands for
subscribing to the regular vs digested versions of the list and you can
just document both in your instructions and let people choose. Having it
as a single command also means you don't need to explain how to send two
commands in the same message, etc.
This however does not solve the more general problem of sequential
execution of dependent commands (individual cookies are not guaranteed to
execute in the right sequence as they may be received and confirmed out
of order). In such cases you can use:
SET XYZ-L DIGEST
This creates a block of commands which are confirmed and executed using a
single cookie. This is really meant to be used in scripts and the like.
For instance, if you run a number of related lists, you may already have
a number of little scripts for operations that are performed regularly
and involve multiple LISTSERV commands, such as moving a user from list A
to list B and setting his default subscription options to topic A, while
using cookies for security. This is the kind of script where you would
use OK blocks.
Both features are new in 1.8d, if your host site is one of the beta
testers they can get a build with this functionality.