Playing a Program
It is inevitable that a player will ask for this option. You have permission to smack them if they do. However, you can also say yes, and here are some guidelines:
The easiest option is simply to state that not all Programs have write-access to the Matrix, and thus their abilities, inside the program, may vary as much as a human PC. Their Matrix score can range from one to five.
Programs can download skills (we presume they have connected themselves to the resistance's computers somehow) so that also works the same way. The only difference for a Program is that they have no physical form outside the Matrix. This means if the Agents are chasing them, there's nowhere to hide — eventually, they'll be caught and erased.
The advantage of being a program is that death is not usually forever. When studied, an Agent can detect that the Program is not in fact a human user, but it is still difficult and time-consuming to find the "bug" and erase it completely (just as it is hard to find the bugs that allow outside users to hack into the Matrix). When a program dies, it simply loses its display software. After three scenes of Downtime, they can find their backup files, and restore themselves with the same stats, all chips restored, and a different host body. This allows them to do suicide runs, because they won't die in the real world. However, the GM decides where that host body is located, and what condition it's in — abuse your powers and you might wake up on the moon — in the body of a penguin. Likewise, the GM can rule at any time that the Agents have tracked down your bug, and remove your respawn ability.
Rogue programs are also a good excuse for some of the more outlandish special abilities or superpowers. Also, some of them (the ones who wear white, say) are very, very cool.