Player interaction is most obvious when it's direct. The most blatant example is PvP. Nothing says "i'm affecting you" like an axe to the face or a rocket up your tailpipe. Other perennial favorites are purely social, like players chatting or showing off their latest gear. While this is all integral to the virtual world experience, everything is held together by indirect interaction, and this means a thriving in-game economy, the shift of wealth from one player to another through trading and various interdependencies.
The main point with crafting, as with PvE, PvP and everything else about a persistent world, is to integrate it into other player activities. The most important part is
not giving players fully-usable items as drops from monsters. Almost everything usable in the game world should be created by players. There is a place for NPC vendors, but only of the lowest importance, as sinks for overflow loot or reliable places to get basic items so that players are never completely cut out of the game by losing their last set of gear. The materials for all those player-crafted goods should come from out in the game world, with everyone competing, peacefully or not, for the best mines, trees and mob spawns.
It goes without saying that 'soulbound' items that can never be used by more than one player have no place in a good MMO. It was only ever an offshoot of the idiotic reliance on repetitive class/level-based gameplay.
The end results of crafting skills should also always be usable. Players should never be 'skilling up' their crafting on piles of worthless items that will just go to NPC vendors. The lower levels of crafting skills should be taken up by modular pieces of finished items. For example, a weapons crafter in a scifi game would not start by making fifty worthless laserguns. He'd skill up by making bullets and coolant tubes. This also covers interdependencies between crafting skills nicely, as for instance a skill tree for spaceship engine manufacture could include at its lower levels skills for making jetpacks, batteries for energy weapons or rockets as ammunition.
The point is to never let players be self-sufficient, and make the flow of goods a major part of the game. Items should not be so expensive that players get attached to them. Instead, they should be mass-produced and degrade with use, with repairs only delaying their inevitable loss.
Players should be able to loot each others' bodies or capture each others' ships, but this should cause some damage to the captured loot, so it does not become a complete replacement for buying crafted goods.
Repairs should be performed by players with the appropriate crafting skill.
Both harvested materials and crafted goods should be bulky, requiring their movement from place to place using cargo ships, ox-carts, or whatever's appropriate for the game's setting, and also requiring storage space in the form of NPC banks or player-built warehouses, storage chests, houses, etc. Teleporting is a big no-no, and i'll have to rail against it separately.
This also brings up the issue of clutter or server load. It means imposing limits on the
number of structures players can have at any time and on their proximity to each other.
It also means player-built structures should decay over time so that
shack built by someone who hasn't logged in for three months doesn't
end up taking up space until somebody bothers to take a battering ram to
it.
Buying and selling should be facilitated through a market system, and here i really cannot think of anything better than EVE's example. Players should be able to post both 'buy' and 'sell' offers. Whether or not it's feasible to maintain price histories depends on the range of items players can create.
Currency is a thorny issue. Normally, any game has one base currency, and keeping prices stable depends on providing NPC money-sinks and altering the amount of money dropped by mobs. There are other possibilities. For instance, different NPC safe-zones could have their own currencies, allowing for some automatic balancing as players start selling in different towns if one currency becomes devalued. A more advanced system would be allowing players to mint their own currencies, though this would be very difficult to implement, not only because of balancing, but because it would make automated trading much more difficult.
My personal favorite is avoiding a fabricated currency altogether and setting up useful materials as means of exchange, basically linking a barter system into automated trading. For instance, when putting an item up for sale, players could list its price in grass, sand, bone or wood, all of which would be used either in crafting recipes or as basic fuel.
Theft can be included in all this, and the main guideline is that
it should never be so profitable that it outshines open PvP. Its
results should be limited (for instance picking a player's pockets would only
yield a small percentage of loot) and it should be tracked and punished
by the game in some way, for instance through NPC guards or magic wards
or surveillance devices that can report the act and cause various
punishments.
Crafting also extends to large, cooperative projects. They are the pinnacle of a persistent world game because they double as means of controlling portions of the game world. They can take the form of farms or mines that automatically produce some kind of resource when built on top of the appropriate node, player housing that doubles as storage, defensive structures, ships and so forth. Ideally, players could link these together to create entire communities. The cost of their creation and destruction is one of the most difficult questions in terms of game balance, because nothing causes players to quit so reliably as losing the city into which they've invested the past five months of gameplay. The loss must be attenuated in some way, possibly through a refund of resources, and the act of destruction must be less profitable in itself than capturing shipments of goods or looting individual players, to take some of wind out of griefers' sails. Otherwise, the game will be unplayable because of bands of idiots running around doing nothing but knocking down buildings and sinking ships. In order to destroy anything large, players should have to invest in bringing expensive, vulnerable equipment like siege engines to the fight, and some form of protection must be provided against the element of surprise, a delay between the beginning and completion of the destruction. All this, however, depends so much on the individual nature of the game that it's impossible to discuss in general terms.