How to optimally make a 3D model of an object using photos?
Usually, the largest variability in 3D imaging is lighting, closely followed by the color scheme. You'll probably want to heed some of the following points:


No colors in the background/stand, keep to shades (unless otherwise specified for scanner)
No gradients. This applies to poor lighting causing a "gradient" light effect
Set the backdrop beyond the range of the scanner if possible (like with Skanect w/ Microsoft Kinect)
Ideally set the backdrop and especially the stand in contrast with the color of the object.


You're right, a typical 3D scanner will have a difficult time with darker colors due to physics. However, there are no rules that say you can't change the color of the object.

In this application, I would suggest just going ahead and spray painting the object and scanning it. Scanning the insole is going to require super tight tolerances in scanning as I'm assuming the insole is naturally worn due to use. 

Completely alternatively from 3D scanning, you could try using a 3D touch probe like on a CMM (Coordinate Measuring Machine). It will take longer, but a touch probe doesn't care what color the object is.

Update

The touch probe comment seems to be a hit, so I'll elaborate. My experience with touch probes comes only from manufacturing technology and can be found and in a variety of different machine tools:


Mills
Lathes
CMMs
Vision Systems
"Romer" Arms (aka portable CMM)


You could probably get away with searching for a local machine shop (or job shop) and asking if they have a machine for reverse engineering. The quickest and easiest machine for reverse engineering (in my experience) is a portable CMM, I recommend Googling it.

Alternatively, I've heard of people adding touch probes to their 3D Printers, but I haven't seen it before. In theory, a basic touch probe can easily be achieved by using a momentary switch. If you're good with programming and maybe a bit of Arduino, you could do the following:


Add momentary (normally off) switch to Arduino 
Find a way of attaching the switch (below nozzles)
Connect to your 3d printer in your preferred method and preferred programming language. I've used the provided libraries in Python that come with installing MakerWare in order to connect to my MakerBot.
Write your routine to sequentially move the new probe in a grid pattern and then incrementally move the Z up until you get a signal from your Arduino that the momentary has been switched on.
For each trigger, append a simple text file with a new line containing the coordinates.
once complete, you should have a "point cloud" of your insole which, if formatted correctly, will be able to import into CAD software


There are a few file types off the top of my head that can be used including:


.pts
.XYZ
.CSV