Not every company can be a virtual company. The assembly of physical goods (like automobiles or lamps) requires that people work in a factory. Taxi drivers must be in taxis. Plumbers must visit the site of the plumbing.
Virtual companies are not so much virtual as they are distributed. The employees (and work performed) is distributed in various locations. This leads to some interesting changes in the management of companies.
The companies that can be distributed are the ones that deal with information, with bits that can be easily transported to different locations. Software development is an obvious candidate; others include accounting, insurance claim processing, banking, X-ray analysis, product support, and economic analysis.
First is the obvious technology changes. Employees must have the equipment and skills for communication and coordination of effort. Telephones, e-mail, instant messaging, video conferencing are necessary communication tools. Collaboration tools such as Google Docs are needed, too.
There are changes in the hiring employees. In the old (central location) style of a company, candidates would be drawn from a pool of local talent. Some companies may choose to re-locate people to their area, once an offer was made and accepted. Other companies won't. In contrast, the new (distributed) style allows for people to work from any location.
Payroll is affected: If I am in one state and hire a person living in another state, what taxes are paid? More specifically, where is the work performed?
More than these, there is the question of performance review. Many shops have some form of performance review, and larger shops have elaborate and bureaucratic processes. Despite the forms and meetings, many evaluations by managers are reduced to the managers opinion of the employee, and that opinion is often guided by the employee's arrival and departure times.
With a distributed workforce, a manager cannot simply walk past cubes to see who is working late.
Some managers may resort to tricks, such as sending requests at 4:55 (or five minutes prior to the employee's shift end, in whatever time zone) to see if the employee responds. Some companies may set up arrangements to "clock in" and "clock out". I suspect that these tricks will annoy everyone involved without contributing to productivity.
In a distributed company, managers will have to measure employees based on their contributions -- which is probably what they should have been doing all along. This may be difficult for some managers, as they will have to learn about their employees' tasks and deliverables. It may be difficult for employees, since they will have to explain their work to their supervisors (and also not boost their score by simply working late two nights a week).
Distributed work is here. Some companies are using it, to their advantage. They have a larger pool of talent from which to draw. Limiting your talent to "the locals" is convenient (and follows the tradition) but may not be good enough to compete in the future.
You can choose to use distributed work, or you can choose to ignore it. But you must choose.