I just came across this thread and realized, I've got a project I just did this through. I'll post a linkt here as an example and explain the method I used.
Check it out here: Inform 7 Map Builder
You can middle-click and drag the canvas around in that example.
What I did was created a Sprite object and added the ScrollTo behavior to it. I then checked for a middle mouse button down condition, at which point I stored the Mouse.X and Mouse.Y coordinates in the Sprite object's ScrollXMouse and ScrollYMouse variables and set the global variable "Mode" to "Scroll".
With the Mode set to "Scroll", any further mouse movements will move the Cursor object from the original middle-mouse button down position, to the new mouse coordinates. This emulates the canvas scrolling effect.
It's done by calculating the distance and angle from the original pressed mouse position to the new mouse position, as shown in the following screenshot from my project file:
<img src="http://dl.dropbox.com/u/41325628/construct2/mouse-scrolling-canvas/mouse-scroll-canvas.png" border="0">
Hope that helps explain how I achieved it. Perhaps others have better ways of doing it as well.
I should also note, the url I gave above is a total work in progress and has not yet been properly released. It's top secret. ;)
Cheers!
-DavidM