Once hooked up, the user plugs random electronics components into the 877... be it switches, LED's, transistors, whatever.
On the screen, the see a graphical version of the 877 chip, with some annotations next to each pin (except for the pins that are special, eg. power pins and pins required to talk to the computer). Each pin has a drop-down that has things like "Input", "Output", "PWM", "Comparator", "Votage Reference", "A/D", etc... If a pin is configured as an input, the 877 will constantly poll those, and if the pin changes value, it'll send it to the computer and the value will be updated on the screen. The user will be able to select 0/1 for simple output, or frequency and duty cycle for PWM, a voltage for voltage reference, etc...
Optional things include: Having a history of the input of a pin, to have a digital osciliscope, whose cycle time would mostly be limited by the computer <=> 877 bandwidth available. Also an analog osciliscope could be had for the A/D conversion.
Along the lines of a "Visible Chip", things like an I2C bus could be added, and you could see a human-readable log of the messages being sent across. Similarly, various other "virtual perhipherals" could added.
Also, at a lower level, an alternate screen can be poped up that shows a memory map of the configuration registers, bit by bit. In fact, I'd assert that the best way to do this is to mirror exactly the contents of those registers on the VB side, and that should be the lowest layer of abstraction. To toggle a pin to be output, just pretend like you're changing the config registers locally, and make sure that change propogates to the PIC.
Benefits: Users learn both the full capabilities of the chip they're working with, but also can learn a variety of electronics by simply hooking them up to the chip. No programming or programmer-software knowledge would be needed.