The Signals Corps
There are many claims made about the nature of the American Civil War being novel. Many of these are spurious but some are true. One of the most "modern" features of the ACW is the activities of the United States Signal Corps. This small and overlooked body of men ran a tremendously effective communications system. Communiques McClellan sent from a field command post on the outskirts of Richmond would arrive at Washington, DC a mere ten minutes later. Using this system McClellan was able to achieve a level of command and control of his Corps as then unrivaled in the world. Indeed this was the first Signals Corps created in the world ever (in the British Army, for example, Signals would remain a part of the Engineers for decades).
McClellan wasn't working in a void. He'd seen the advances in communications technology made by the armies of Europe, and resolved to implement them fully. The general history of the Signals Corps during the war can be read on wikipedia.
The electric telegraph was short ranged and unreliable. A semaphore based system, the "wig-wag" worked very well within line of sight. It was the wig-wag that McClellan would use to control his army before Richmond. Such "frippery" as signals didn't emerge in the Army of the Tennessee for over a year (although it was very advanced in the Army of the Ohio/ Cumberland), the likes of Grant and Sherman simply had no time for it.
McClellan thus commanded his army from a central command post with signals to the subordinate commands (divisions, even after the establishment of Corps). He could leave his CP and, as long as he had an efficient signals troop with him, he could maintain command of the battle from anywhere.
Glendale and Malvern Hill
This brings me to the accusation that McClellan abandoned his army at either Glendale or Malvern Hill (both are sometimes mentioned), and to the related issue of the fantastic tale of an army commander having lunch on a boat off shore while his army fought.
It is important to note that McClellan established his General Headquarters Command Post at Haxall's Landing on Malvern Hill. From this position he was in communication with all his commanders and with the naval force on the James River (by way of a signals detachment sent on board her).
Figure 1: approximate schematic of McClellan's signals at Glendale (Porter's two divisions preparing positions on Malvern Hill omitted for clarity)
At Glendale, McClellan placed his divisions personally earlier in the day. He had effectively adopted a taskorg of three wings, one at White Oak Swamp with 3 divisions under Franklin, Sumner and Heintzelmann had a line facing west, whilst Keyes and Porter were detached from the main line on other tasks (Keyes would march with the army's trains to Harrison's Landing, whilst Porter was preparing a fallback position and acting as a reserve). He had direct contact with the four divisions to the west and contact with a relay station on the northern flank that connected the other 3 divisions in the line. He also had communications with Porter (whose signals were higher up on Malvern Hill and relayed a lot of intelligence). Keyes was marching, but may well have kept in contact with Porter after he broke contact with McClellan.
According to the report of McClellan's signals detachment show after fighting started McClellan went to the front to check, returned to his CP, then went to the fleet. Whilst with the fleet he maintained contact with all his commanders via his signals and received their reports. He directed the naval gunfire that decisively defeated Holmes's movement (and Lee's battleplan) personally. He then returned to shore and his CP.
The next day, after the withdrawal to the prepared killing area of Malvern Hill. He didn't sleep that night, inspecting positions and positioning divisions, and around 9am boarded the Galena for a personal recce of Harrison's Landing and to consult with the naval commander. During this period he would still have been in contact with his commanders. He had 3 signals stations that could view the river; one at Haxall's Landing, one on Malvern Hill and one at Harrison's Landing. He left the Galena at 1330hrs (after having given the order to open fire with the artillery on the massing Confederates) and was on the field at 1400, over 90 minutes before the Confederate attack. He was thus present for the battle.
On of the great overlooked achievements of the Union Army during these battles is that the commanding general could be anywhere, even miles down a river on a recce. General McClellan commanded from many different places during the battles, but he was always in command.