There are a couple of mix-and-match ways to do this beyond the obvious car-rental, private shuttle, or car-and-driver service options, and I thought it would be nice to have them all in one place for the start of the new tourist season ...
***WEST (COMO-COLICO) BRANCH:
*TO COMO: Catch the Malpensa Express train to Saronno station run by Le Nord (leaves from lower level of terminal 1), change for Como Lago (end of line). Tickets sold at Malpensa just above the platforms, no need to book in advance. [Times can be consulted at www.trenord.it (no English as of yet, but pretty basic interface -- input Da: "Malpensa Aeroporto" A: "Como Lago")]
*ON UP THE LAKE: From here you have two main options:
1) Cross the street to the left to the ferry ticket booth and catch a ferry or hydrofoil directly to destination town
[boat schedules: www.navlaghi.it/eng/c_orari.asp]
[bus schedules may be consulted at www.asfautolinee.it/it-it/lineeeorari/orariolineeinpdf/reteextraurbana.aspx]
*NOTE* It's also possible to follow one of the options below, then catch a ferry from Varenna over to Bellagio -- usually this is a bit more trouble (you'll need to come a few hundred meters, mostly downhill, from the Varenna/Esino train station to the ferry, and backtracking to Milan Central isn't the most direct way to the central lake), but sometimes the times work out to be similar to the train/ferry combo above.
***EAST (LECCO-COLICO) BRANCH:
*TO TOWNS LECCO-VARENNA (inclusive):
You start out with two options from Malpensa to Milan -- either:
1) Catch a Malpensa Express *train* to Milano Centrale
[Times can be consulted at www.trenord.it (no English as of yet, but pretty basic interface -- input Da: "Malpensa Aeroporto" A: "Milano Centrale")]
2) Catch a Malpensa Shuttle *bus* to Milano Centrale
*TO/UP THE LAKE:
From Milan's Central Station you can then catch a regional train (usually headed for Tirano or Sondrio) to Lecco, Varenna/Esino, Bellano or Colico. For stops between Lecco and Varenna (Fiumelatte, Lierna), you'd need to get off at Lecco and change to a more local train heading in the same direction.
Hope this helps!