<p>I've never developed a web application that uses distributed memory. </p>

<p>Is it common practice to run a tool such as Microsoft <a href="http://blogs.msdn.com/velocity/" rel="nofollow noreferrer">Velocity</a> on my local machine as I develop, should I run Velocity on another server as I develop, or should I just develop as normal (default session &amp; cache) and use Velocity only after I've deployed to our development server? </p>

<p>We are running into a lot of memory issues in our production web application so we are researching into splitting our servers into a farm.</p>

I'm looking at using Velocity on a project as well. What I've done thus far is to write a common caching interface and a simple implementation that utilizes the standard ASP.NET caching system. This way I can program against that interface and later plug in the Velocity caching via a concrete implementation of the interface. You can accomplish this more easily using a dependency injection framework such as Unity or Structure Map.
As for where to use Velocity, I'd be sure to try it out in a development environment before going live. If you have a limited number of physical machines, use Virtual PC to set up some virtual servers and install the caching framework onto them.