Or Al could simply implement layers.
One of said layers could be an small grid that, when any square is clicked on inside of the grid, it is designated "empty" or "full". You can create new types of the "full" category, so only some sprites can cross it. The layer would be hidden and accessible when you want to modify the invisible grid. This would:
A: Allow for more immersive environments - no longer would you see black lines crisscross the world.
B: Allow for simple and effective collision detection - click to place a blockage, like drag-and-drop, if you will
C: Eliminate the need for grid programming and any color coding, thereby simplifying programming of collision based games
Simple enough, if I described it well. Just think photoshop style layers.